Special Issue Paper

Computer Science - Research and Development

, Volume 28, Issue 2, pp 203-209

UPC-CHECK: a scalable tool for detecting run-time errors in Unified Parallel C

  • James CoyleAffiliated withIowa State University’s High Performance Computing Group, Iowa State University
  • , Indranil RoyAffiliated withIowa State University’s High Performance Computing Group, Iowa State University
  • , Marina KraevaAffiliated withIowa State University’s High Performance Computing Group, Iowa State University
  • , Glenn R. LueckeAffiliated withIowa State University’s High Performance Computing Group, Iowa State University Email author 

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access

Abstract

Unified Parallel C (UPC) is a language used to write parallel programs for distributed memory parallel computers. UPC-CHECK (http://​hpcgroup.​public.​iastate.​edu/​UPC-CHECK/​) is a scalable tool developed to automatically detect argument errors in UPC functions and deadlocks in UPC programs at run-time and issue high quality error messages to help programmers quickly fix those errors. The run-time complexity of all detection techniques used are optimal, i.e. O(1) except for deadlocks involving locks where it is theoretically known to be linear in the number of threads. The tool is easy to use, and involves merely replacing the compiler command with upc-check. Error messages issued by UPC-CHECK were evaluated using the UPC RTED test suite for argument errors in UPC functions and deadlocks. Results of these tests show that the error messages issued by UPC-CHECK for these tests are excellent.

Keywords

UPC Run-time error detection Distributed deadlock detection Partitioned global address space