From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Mon Nov 02 2009 - 22:35:29 PST
We are pleased to announce the release of Berkeley UPC 2.10.0, which is
now available for download at:
http://upc.lbl.gov/download/
Source is available for all supported platforms. Binary distributions
are available for Mac OS X and Windows/Cygwin. As in the past, DVD's
containing the release will be freely available at the PGAS booth (#136)
at SuperComputing 09, November 14-20 in Portland, OR.
The 2.10.0 release contains numerous improvements over our last release,
including:
- Improved platform support
- Cray XT support extended to PE 2.1.42+ and to PrgEnv-Intel
- IBM BG/P support extended to V1R4M0 drivers
- Support MacOS 10.6 (Snow Leopard) including Apple's new gcc-4.2.1
- Added support for building with libtool-2.0 and newer
- New runtime features
- Experimental shared-memory support (see the section
"INTRA-NODE SHARED MEMORY SUPPORT" in INSTALL.txt)
- Experimental collectives autotuner (see gasnet/README)
- Expanded BUPC atomic extensions w/ additional operations and 32-bit
types
- Enhanced bupc_thread_distance() to detect processes on same compute
node
- Implemented bupc_{cast,castable,thread_castable}() extensions based
on a UPC language proposal from HP
- UPC source-to-source translator changes
- Many corner cases now generate compiler errors or warnings instead
of crashing the translator
- Significantly improved quality of code generated when experimental
UPC-level optimizations are enabled by -opt
- Deprecated support for building translator on Tru64 and AIX
- Enhancements/improvements to upcrun (see the upcrun manpage)
- Implemented -conf=file and -norc command line options
- Implemented UPCRUN_NORC environment variable (works like UPCC_NORC)
- Implemented -bind-threads option
- Fixed bug 1553 - set appropriate env vars on IBM SP for pthreads
- Several improvements to job spawning on Cray-XT series
- Enhancements/improvements to upcc (see the upcc manpage)
- Implemented -conf=file command line option
- Corrected behavior when -g and -tv are both specified
- Extended config file format to be multiconf friendly
- Enhanced upcc-multi to reject contradictory argument pairings
- Improved support for GCC UPC
- Supported virtual address field order in shared pointer
representation
- Added support for MacOS 10.5 and newer
- Misc changes/improvements
- Tools now work around sometimes buggy UTF-8 support in perl
- Used strict prototypes in public headers and generated code
to allow compilation with -Wstrict-prototypes
- Expanded test suite and fixed several bugs in the tests themselves
- Fixed several minor bugs/issues with the configure and build
scripts
- Fixed the following notable bugs in 2.8.0 runtime libraries
(see http://upc-bugs.lbl.gov for details):
bug1840: SIGFPE crashes (environment variable UPC_SUPPRESS_SIGFPE
can now be used to control suppression of SIGFPE)
bug1976: (1st half) portals-conduit AMMedium payload corruption
bug1976: (2nd half) use-after-free in GASNET_VIS_AMPIPE code
bug2461: PTL_ME_IN_USE runtime crash from portals-conduit
bug2462: catch basin overflow failure on portals-conduit
bug2507: mutex debug code yields warning on every compile on
IRIX/gcc/64
bug2530: mis-aligned use of x86-64 cmpxchg16b instruction
bug2576/2633: XLC crashes due to CFLAGS used in an opt build
bug2582: lapi-conduit LongAsync memory leak
bug2583: AMMedium payload corruption on lapi-conduit
bug2584: Segfault from upc_free() with pgicc 7.2-5 through 8.0-4
bug2588: assertion failure when out-of-memory message expected
bug2606: trace output corruption with high pthread count
bug2613: FATAL ERROR: Firehose: Ran out of request handles
bug2617: PtlMDUpdate errors on portals-conduit
bug2627: long pause at exit time due to sync() call
bug2665: could not build shmem-conduit with TotalView support
bug2674: testinternal-par failure on portals-conduit (iop check
assertion)
bug2677: infrequent fflush(NULL) failure on AIX
bug2683: deal with aggressive alias assumptions of gcc-4.4.x
- Fix the following notable bugs in 2.8.0 source-to-source translator
(see http://upc-bugs.lbl.gov for details):
bug244: translator crashes on incomplete types
bug247: need compiler error for over-size arrays (instead of under-
allocation)
bug1546/2504/2522/2642: various problems with arrays inside structs
bug2396: bad codegen for complex upc_forall affinity expression
bug2502: mismatched static vs. non-static declaration/definition
bug2626: NPB2.4-UPC Benchmark FT class C compilation error
bug2643: Wrong precedence generating a flat address for multi-
dimensional array
Bundled in this release is the new 1.14.0 release of the GASNet
communication system, which will become available [after an unavoidable
delay] for separate download at:
http://gasnet.cs.berkeley.edu/
Below are the notable changes at the GASNet level since the last public
release:
* IBM BlueGene/P (dcmf-conduit):
- Extended support to V1R4M0 driver release
- Used native DCMF level collectives for several GASNet collectives
- Implemented more useful gasnett_gethostname() (previously gave I/O
node name)
- Minor fix for SEGMENT_EVERYTHING support
* Cray-XT series (portals-conduit):
- Extended support to PE 2.1.42 and newer
- Extended support to include PrgEnv-Intel
- Implemented more useful gasnett_gethostname() under Catamount
- Spawner defaults to node count given in batch submission when no -N
passed
- Spawner improvements to deal intelligently with thread/process
pinning
- Misc. performance and scalability improvements
- Several bugs fixed
* IBM SP (lapi-conduit):
- Improved tentative definitions to eliminate excessive AIX linker
warnings
- Implemented AIX-specific code for gasnett_set_affinity()
- Several bugs fixed
* InfiniBand (vapi- and ibv-conduits):
- Corrected non-compliant use of offsetof() that broke compilation
w/ XLC
- Fixed anomalous performance on ConnectX HCAs (Mellanox MT25418)
- Improved performance (and correctness) with segments 2GB and larger
- Documented settings to work-around failures seen w/ InfiniPath HCAs
see vapi-conduit/README (source) or share/doc/gasnet/README-ibv
(installed)
- Multiple bugs fixed
* Misc Platform support:
- Fixed mis-aligned use of x86-64 cmpxchg16b instruction
- Atomics work-around for SiCortex ICE9A processor errata
- Fixed aggressive alias analysis in gcc-4.4.x
- Improved support for XLC on all platforms
- Improved debug info and warning messages with PathScale compilers
- Improved gcc TLS support on IA64
* General:
- Added experimental shared memory support
(see README and pshm-design.txt)
- Added experimental collective autotuner
(see README and autotune.txt)
- Additional collective algorithms implemented
- Fixed some tests for large message sizes or large iteration counts
- Work around sometimes broken UTF-8 support in perl
- Improved support for clients with dynamic thread creation
- Several minor bug fixes in conduit-independent code
* Build and configure:
- Improved public headers to enable use of -Wstrict-prototypes by
clients
- More accurate conduit auto-detection (eliminating false-positives)
- Allowed disabling of conduit auto-detection
- Updates to configure for more recent GNU autotools
- Better default mpi-conduit configuration on SGI Altix and IRIX
- Corrected mechanism for detecting an SMP host under FreeBSD