From: Jason Beech-Brandt (jason_at_ahpcrc_dot_org)
Date: Tue Jul 18 2006 - 15:08:47 PDT
Dan, OK, thanks for the warning. I've just got a working build, so I haven't tried to build any of our application code with it. I'll let you know how we get on. Thanks again. Jason Dan Bonachea wrote: > Jason - > > It's worth noting that we've rarely/never(?) tested the specific > combination of gm-conduit with PGI (due to a lack of access to a > machine with that combination), so it's possible there are other > undiscovered bugs there.... There are also some known (and unresolved) > PGI optimizer bugs which can affect UPC code, eg: > http://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=1402 > We've been working with the PGI team to get this and other PGI bugs > we've discovered fixed, but I'd still hesitate to call PGI a fully > production-quality C compiler. Please let us know how it goes for you... > > If you encounter trouble, an alternate solution is to use a > different/more robust C compiler - the x86_64 version of Intel C > generates quite good code for Opterons, and is what we usually > recommend for GM PC clusters. gcc is also usually quite stable and > robust, although the optimizer is less aggressive than Intel's. > > Dan > > At 01:45 PM 7/17/2006, Paul H. Hargrove wrote: >> Jason, >> >> PGI versions prior to 6.1 lacked the required inline asm support. >> So, you have a new enough version of the PGI compiler. However, the >> corresponding support in bupc is not in the released 2.2.2. The >> atomics support has undergone a significant re-write since the 2.2.x >> series, and thus there is no simple patch to bring a 2.2.2 version up >> to the current atomic support. However, the following 2-line change >> *might* work: >> >> --- gasnet_atomicops.h 7 Mar 2006 23:36:46 -0000 1.76.2.5 >> +++ gasnet_atomicops.h 17 Jul 2006 20:41:30 -0000 >> @@ -53,7 +53,6 @@ >> #if defined(GASNETI_FORCE_GENERIC_ATOMICOPS) || /* for debugging >> */ \ >> defined(CRAYT3E) || /* T3E seems to have no atomic ops >> */ \ >> defined(_SX) || /* NEC SX-6 atomics not available to user >> code? */ \ >> - (defined(__PGI) && defined(BROKEN_LINUX_ASM_ATOMIC_H)) || /* >> haven't implemented atomics for PGI */ \ >> defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* haven't >> implemented atomics for SunCC */ >> #define GASNETI_USE_GENERIC_ATOMICOPS >> #endif >> @@ -272,7 +271,7 @@ >> * support for inline assembly code >> * >> ------------------------------------------------------------------------------------ >> */ >> #elif defined(__i386__) || defined(__x86_64__) /* x86 and >> Athlon/Opteron */ >> - #if defined(__GNUC__) || defined(__INTEL_COMPILER) || >> defined(__PATHCC__) >> + #if defined(__GNUC__) || defined(__INTEL_COMPILER) || >> defined(__PATHCC__) || defined(__PGI) >> #ifdef GASNETI_UNI_BUILD >> #define GASNETI_LOCK "" >> #else >> >> >> However, it is entirely possible that this will trigger PGI bugs that >> we work around in various ways in our development head. >> >> -Paul >> >> Jason Beech-Brandt wrote: >>> Hi, >>> I'm trying to build Berkeley upc-2.2.2 runtime with pgi 6.1-2 on our >>> Opteron cluster with the gm-conduit. However, when I do so I'm >>> getting an error like >>> ~/src/berkeley_upc-2.2.2/gasnet/gm-conduit/gasnet_core.c: >>> PGC-F-0249-#error -- "We need real atomic ops with signal-safety >>> for gasnet_exit..." >>> (~/src/berkeley_upc-2.2.2/gasnet/gm-conduit/gasnet_core.c: 907) >>> PGC/x86-64 Linux/x86-64 6.1-2: compilation aborted >>> I've seen some bugs in the bugzilla list concerning pgi and atomics, >>> but I got a bit lost. Are there some source/configure modifications >>> I can use to get this to work? >>> Thanks in advance for the advice. >>> Jason >> >> >> -- >> Paul H. Hargrove PHHargrove_at_lbl_dot_gov >> Future Technologies Group >> HPC Research Department Tel: +1-510-495-2352 >> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 >