|
Berkeley UPC Publisher's Description:
Unified Parallel C (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. In order to express parallelism, UPC extends ISO C 99 with the following constructs: * An explicitly parallel execution model * A shared address space * Synchronization primitives and a memory consistency model * Memory management primitives UPC combines the programmability advantages of the shared memory programming paradigm and the control over data layout and performance of the message passing programming paradigm. Berkeley UPC is a high-performance, portable and fully open-source implementation of the UPC language designed for large-scale multiprocessors, PC clusters, and clusters of shared memory multiprocessors. Berkeley UPC is the first UPC implementation available for Mac OS X, and delivers competetive performance for supercomputing applications on the largest OS X clusters in the world, yet also provides support for UPC code development on Mac OS X laptops and desktop workstations.
What's new in this version:
Berkeley UPC release 2.4.0 (and 2.3.16 BETA 1)
* Add initial native support for the Cray XT3 via new 'portals' network
* Implement the GASP 1.5 performance instrumentation interface, supporting the Parallel Performance Wizard (PPW) and other third-party profiling tools.
* Add bupc_ticks_to_ns() - finer granularity timer query
* Add the Berkeley implementations of the UPC collectives and UPC-IO to GCCUPC+UPCR
* Add most of the Berkeley UPC library extensions to GCCUPC+UPCR
* Add upcdecl command-line tool (also online at: http://upc.lbl.gov/upcdecl)
* Add support for alloca() and stdarg.h
* Performance improvements to the BUPC semaphore library for signalling store
* Add bupc_thread_distance() - runtime thread layout query for hierarchical systems
* Add a remote fetch-and-add UPC library extension (initially just for 64-bit ints)
* Allow configure-time tuning of bit distribution in packed pointer-to-shared rep
* Fix the following notable bugs in 2.2.2 (see http://upc-bugs.lbl.gov for details):
o bug525: optimizer crashes on Tru64/CompaqC for libgasnet
o bug1229: More robust preprocessing on Compaq C
o bug1389: ansi-aliasing violations on small local put/get copies
o bug1531: improved lock fairness to remote lock requests
o bug1594: timer inaccuracies on Cray X1E
o bug1645: preprocess-time failure 'Backslash found where operator expected'
o bug1657: PACKAGE_* symbols exposed to UPC code on GCCUPC+UPCR
o bug1683: improve upcrun handling of -shared-heap-max
o bug 1743: More robust behavior when backend C compiler changes
* Improved SRV-based DNS failover for upcc HTTP translation
* Add gzip compression to HTTP netcompile, for faster compiles over slow links
* Improved robustness for SSH netcompile to handle stray output from dotfiles
* Numerous misc minor bug fixes
|