Unified Parallel C, in short UPC, is an extension of the C programming language designed for high performance computing on large-scale parallel machines.
The language provides a uniform programming model for both shared and distributed memory hardware.
The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor.
UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor.
Product's homepage
What's New in This Release: [ read full changelog ]
· Beta release of gemini-conduit
· This release includes a BETA of native support for the Cray XE network. See GASNet's ChangeLog for more details.
· New runtime features
· Most runtime error messages in a debug (-g) build now include source file and line number information.
· Implemented collective deallocation functions based on a UPC language extension proposal by Cray (fixes bug 3060).
· Enhancements/improvements to UPC Runtime and GASNet
· Implemented faster atomics for x86, x86-64 and PPC64.
· Improved signal handling for smp-conduit.
· Fix output corruption sometimes seen when redirecting stdout/stderr.
· GASNET_TMPDIR env var to control placement of most temporary files.
· Enhancements/improvements to upcc (see the upcc manpage)
· Implement support for HTTP proxy when using network translator.
· Enhancements/improvements to upcdecl (see the upcdecl manpage)
· Now supports additional types, including upc_lock_t, upc_file_t, offset_t and size_t (fixes bug 2953).
· Now supports THREADS and simple arithmetic expressions in array dimensions and layout qualifiers (fixes bug 2954).
· Improved platform support/portability
· Fixed bugs 2648 and 2748: problems with autoconf 2.64 and newer.
· Now ship with updated config.guess and friends.
· Removed constructs deprecated in perl 5.12.
· Added work-arounds for Open64 and PathScale compiler bugs.
· Fixed various warnings seen with recent gcc and icc versions.
· Better MIPS and ARM support in GASNet.
· Improved support for GCC UPC
· Add support for all Berkeley UPC extensions when using the GCCUPC back-end (fixes bug 2884).
· Fixed bug 2427: default optimization incorrect in dbg_gccupc build.
· Enforce alignment of struct PTS only when target arch requires it.
Fixed the following notable bugs in 2.12.2 UPC and GASNet libraries:
(see http://upc-bugs.lbl.gov for details):
· bug2506/3030: more space-efficient shared heap allocator
· bug2768: errors with firehose at node counts over 4096
· bug3008: runtime detection of shared-NULL dereference (with -g)
· bug3035: compilation chokes on byteswap.h and arpa/inet.h
· bug3053: reductions with blocksize==0 result in error (crash)
· unreported: PSHM-over-SYSV broken for non-contiguous proc distribution
· Fixed several additional minor bugs/issues not reported in Bugzilla.
· Fixed the following notable bugs in 2.12.2 source-to-source translator
(see http://upc-bugs.lbl.gov for details):
· bug1319: refixed to reject expansion of asm()-based macros in UPC code
· bug3017: erroneous type error involving shared[1] int and shared int
· bug3037: erroneous "discards qualifiers" warnings with string constants
· bug3039: silent truncation of large enum values (now issues a warning)