[mpich-discuss] Cannot build mpich2-1.0.8p1 (nemesis) with PGI 8.0-4 on Linux x86_64

Gus Correa gus at ldeo.columbia.edu
Mon Mar 30 18:12:53 CDT 2009


Dear MPICH experts

I tried to build the latest mpich2-1.0.8p1,
with the nemesis communication device,
using the PGI 8.0-4 compilers (pgcc, pgcpp, and pgf90)
on a Linux x86_64 computer, but it failed.

The error message, which happens during the make phase, is:

make[7]: Entering directory 
`/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/ch3/channels/nemesis/nemesis/src'
pgcc -DHAVE_CONFIG_H -I. 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/nemesis/src 
-I. -I../include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/ch3/channels/nemesis/nemesis/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/include 
-DNDEBUG -O2 -DUSE_PROCESS_LOCKS 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/ch3/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/common/datatype 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/common/datatype 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/common/locks 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/common/locks 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/ch3/channels/nemesis/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/build_pgi-8.0-4/src/mpid/common/locks 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/common/locks 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/nemesis/include 
-I/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/nemesis/utils/monitor 
-c 
/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/nemesis/src/mpid_nem_alloc.c
PGC-F-0249-#error --  No swap function defined for this architecture 
(/home/swinst/mpich2/1.0.8p1/mpich2-1.0.8p1/src/mpid/ch3/channels/nemesis/nemesis/include/mpid_nem_atomics.h: 
31)
PGC/x86-64 Linux 8.0-4: compilation aborted

**

Apparently all three pre-processor macros
HAVE_GCC_AND_PENTIUM_ASM,
HAVE_GCC_AND_X86_64_ASM, and
HAVE_GCC_AND_IA64_ASM
on the mpid_nem_atomics.h file are not defined.
Since I am working on an x86_64 Linux computer with gcc,
I thought configure would somehow define HAVE_GCC_AND_X86_64_ASM.
Or not?

**

More information about the computer, which is the
head of a cluster with similar compute nodes:

1. AMD Opteron Shanghai (dual socket, quad core)
2. Linux kernel 2.6.18-92.1.22.el5 #1 SMP (CentOS 5.2)
3. PGI 8.0.4
4. Gnu/GCC 4.1.2

**

My configure script:

#! /bin/sh
export MYINSTALLDIR=/some/directory/
export CC=pgcc
export CXX=pgcpp
export F77=pgf90
export F90=${F77}
# Note: Optimization flags for AMD Opteron "Shanghai"
export MPICH2LIB_CFLAGS='-tp shanghai-64 -fast -Mfprelaxed -static'
export MPICH2LIB_CXXFLAGS=${MPICH2LIB_CFLAGS}
export MPICH2LIB_FFLAGS=${MPICH2LIB_CFLAGS}
export MPICH2LIB_F90FLAGS=${MPICH2LIB_CFLAGS}
####################################################
../configure \
--prefix=${MYINSTALLDIR} \
--with-device=ch3:nemesis \
--enable-fast \
2>&1 | tee configure_${build_id}.log

**

BTW, I built mpich2-1.0.8p1 with nemesis on the same computer
using Gnu compilers (gcc, g++, gfortran),
and also using Intel compilers (icc, icpc, ifort).
However, we also need the PGI build of MPICH2.

I appreciate any help.

Gus Correa
---------------------------------------------------------------------
Gustavo Correa
Lamont-Doherty Earth Observatory - Columbia University
Palisades, NY, 10964-8000 - USA
---------------------------------------------------------------------


More information about the mpich-discuss mailing list