Re: building Berkeley upc with pgi-6.1-2 with gm conduit

From: Dan Bonachea (bonachea_at_cs_dot_berkeley_dot_edu)
Date: Tue Jul 18 2006 - 00:14:31 PDT

  • Next message: Jason Beech-Brandt: "Re: building Berkeley upc with pgi-6.1-2 with gm conduit"
    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:
    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.
    At 01:45 PM 7/17/2006, Paul H. Hargrove wrote:
    >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
    >+++ 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 */
    >  #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) || 
    >+    #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.
    >Jason Beech-Brandt wrote:
    >>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
    >>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: 
    >>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.
    >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

  • Next message: Jason Beech-Brandt: "Re: building Berkeley upc with pgi-6.1-2 with gm conduit"