[mpich-discuss] nemesis on powerpc64?

Dave Goodell goodell at mcs.anl.gov
Wed Sep 30 08:09:55 CDT 2009


Let me take a look at this.  The "ppc" atomics implementation is  
really just an IBM BlueGene/P compute-node implementation (basically  
32-bit PPC440).  I thought things were working on the login nodes  
though, which are 64-bit PPC970  machines, IIRC.

-Dave

On Sep 29, 2009, at 8:13 PM, Martin Siegert wrote:

> Hi,
>
> I am trying to compile mpich2-1.1.1p1 with
> --with-device=ch3:nemesis
> on a PowerPC 64bit Linux system using CC="gcc -m64" and FC="xlf -q64".
>
> configure fails with
> configure: error:
> The nemesis channel was selected yet no native atomic primitives are
> available on this platform.  OpenPA can emulate atomic primitives  
> using
> locks by specifying --with-atomic-primitives=no but performance will  
> be
> very poor.  This override should only be specified for correctness
> testing purposes.
>
> and src/openpa/config.log contains
>
> onfigure:6160: checking for support for gcc PowerPC atomics
> configure:6223: gcc -m64 -o conftest -O3 -mcpu=970 -mtune=970 - 
> maltivec -I./src -I/usr/local/src/mpich2-1.1.1p1/src/openpa/src -I/ 
> usr/local/src/mpich2-1.1.1p1/src/openpa/src -DUSE_PROCESS_LOCKS   
> conftest.c -lpthread  -lpthread >&5
> In file included from conftest.c:41:
> src/primitives/opa_gcc_ppc.h: In function `OPA_LL_ptr':
> src/primitives/opa_gcc_ppc.h:80: error: duplicate case value
> src/primitives/opa_gcc_ppc.h:80: error: previously used here
> src/primitives/opa_gcc_ppc.h:82: warning: cast to pointer from  
> integer of different size
> src/primitives/opa_gcc_ppc.h: In function `OPA_SC_ptr':
> src/primitives/opa_gcc_ppc.h:90: error: duplicate case value
> src/primitives/opa_gcc_ppc.h:90: error: previously used here
> src/primitives/opa_gcc_ppc.h:92: warning: cast from pointer to  
> integer of different size
> configure:6230: $? = 1
>
> Line 80 in opa_gcc_ppc.h is:
>
> OPA_COMPILE_TIME_ASSERT(sizeof(int) == sizeof(void *));
>
> I am not sure whether I am interpreting this correctly, but this looks
> to me as if this fails if sizeof(int) != sizeof(void *), i.e., on any
> 64bit platform.
>
> Is there a fix for this?
>
> Thanks!
>
> Cheers,
> Martin
>
> -- 
> Martin Siegert
> Head, Research Computing
> WestGrid Site Lead
> IT Services                                phone: 778 782-4691
> Simon Fraser University                    fax:   778 782-4242
> Burnaby, British Columbia                  email: siegert at sfu.ca
> Canada  V5A 1S6



More information about the mpich-discuss mailing list