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