[mvapich-discuss] Problem Building MVAPICH-1.0-beta with PGI Compilers

Peter Cebull peter.cebull at inl.gov
Thu Feb 7 14:26:51 EST 2008


Jonathan L. Perkins wrote:
> Jonathan Perkins wrote:
>> Peter Cebull wrote:
>>> I'm trying to build MVAPICH with PGI compilers (version 7.1-3) and 
>>> am running into an error. Our system is running SLES 10. Log files 
>>> are attached. Has anyone seen this before?
>>>
>>> Thanks,
>>> Peter
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> _______________________________________________
>>> mvapich-discuss mailing list
>>> mvapich-discuss at cse.ohio-state.edu
>>> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>
>> Peter:
>> We're sorry that you're having trouble with the PGI compiler.  We'll 
>> take a look into this issue and get back to you as soon as we can.
>>
>>
>
> Peter:
> Can you send a bit more information related to this error.  Can you 
> tell us which variables you set in order to use the pgi compiler.  
> Also, are you using the make.mvapich.gen2 script for your build process?
>
> I haven't been able to reproduce this error using SuSE 10 and both PGI 
> 7.0-7 and PGI 7.1-3.
>
I've attached the make.mvapich.gen2 file I was using. I think all I 
changed were these variables

IBHOME=${IBHOME:-/usr}
IBHOME_LIB=${IBHOME_LIB:-/usr/lib64}
PREFIX=${PREFIX:-/usr/local/mvapich/mvapich-1.0-beta/pgi-opt}
export CC=${CC:-pgcc}
export CXX=${CXX:-pgCC}
export F77=${F77:-pgf77}
export F90=${F90:-pgf90}

and added some options to configure:

./configure --enable-shared-lib --with-device=ch_gen2 --with-arch=LINUX 
-prefix=${PREFIX} \
        --enable-f77 --enable-f90 --enable-f90modules $ROMIO 
-lib="$LIBS" 2>&1 |tee config-mine.log

Then I just executed the script. Let me know if you need any more info.

Thanks,
Peter

-- 
Peter Cebull
HPC User Consultant
Idaho National Laboratory
P.O. Box 1625, MS3605
Idaho Falls, ID 83415
Phone: 208-526-1909
Email: Peter.Cebull at inl.gov

-------------- next part --------------
#!/bin/bash

# Most variables here can be overridden by exporting them in the environment
# before running this script.  Default values have been provided if the
# environment variable is not already set.

source ./make.mvapich.def

# The target architecture.  If not exported outside of this script,
# it will be found automatically or prompted for if necessary.
# Supported: "_IA32_", "_IA64_", "_EM64T_", "_X86_64_"
#
if [ -z "$ARCH" ]; then
    arch
fi

# This is the compatibility mode. If not exported outside this
# script, the user is prompted to select either mode. In
# autodetection mode, different types of IB hardware can
# be detected and optimized for. In compatibility mode a
# common set of parameters is chosen by MVAPICH.
# Supported: "AUTO_DETECT" and "COMPAT_MODE"
#
if [ -z "$COMPAT" ]; then
    prompt_compat_mode
fi

# Mandatory variables.  All are checked except CXX and F90.
IBHOME=${IBHOME:-/usr}
IBHOME_LIB=${IBHOME_LIB:-/usr/lib64}
PREFIX=${PREFIX:-/usr/local/mvapich/mvapich-1.0-beta/pgi-opt}
export CC=${CC:-pgcc}
export CXX=${CXX:-pgCC}
export F77=${F77:-pgf77}
export F90=${F90:-pgf90}

if [ $ARCH = "SOLARIS" ]; then
    die_setup "MVAPICH GEN2 is not supported on Solaris."
elif [ $ARCH = "MAC_OSX" ]; then
    die_setup "MVAPICH GEN2 is not supported on MacOS."
fi

#
# Compiler specific flags. If you are using
# ICC on IA64 platform, please set COMPILER_FLAG
# to "icc"
#

COMPILER_FLAG=${COMPILER_FLAG:-}

if [ "$COMPILER_FLAG" == "icc" ]; then
       COMPILER_FLAG="-D_ICC_"
else
       COMPILER_FLAG=""
fi

# Check mandatory variable settings.
if [ -z "$IBHOME" ] || [ -z "$PREFIX" ] || [ -z "$CC" ] || [ -z "$F77" ]; then
    die_setup "Please set mandatory variables in this script."
elif [ ! -d $IBHOME ]; then
    die_setup "IBHOME directory $IBHOME does not exist."
fi

# Optional variables.
#

# Whether to enable ROMIO support.  This is necessary if building the
# F90 modules.
if [ -n "$F90" ]; then
    ROMIO="--with-romio"
else
    ROMIO=${ROMIO:---without-romio}
fi

# PTMALLOC support for MVAPICH2 memory hooks.  Enabling this will allow
# MVAPICH2 to release memory to the Operating System (when registration
# cache is enabled).  Enabled by default.  Disable with "no".
PTMALLOC=${PTMALLOC:-}

if [ "$PTMALLOC" = "no" ]; then
	PTMALLOC="-DDISABLE_PTMALLOC"
else
	PTMALLOC=""
fi


# Whether to use an optimized queue pair exchange scheme.  This is not
# checked for a setting in in the script.  It must be set here explicitly.
# Supported: "-DUSE_MPD_RING", "-DUSE_MPD_BASIC" and "" (to disable)
HAVE_MPD_RING=${HAVE_MPD_RING:-}

# Set this to override automatic optimization setting (-03).
OPT_FLAG=${OPT_FLAG:--O3}

export LIBS=${LIBS:--L${IBHOME_LIB} -Wl,-rpath=${IBHOME_LIB} -libverbs -libumad -lpthread}
export FFLAGS=${FFLAGS:--L${IBHOME_LIB}}
export CFLAGS=${CFLAGS:--D${ARCH} -D${COMPAT} ${PTMALLOC} -DEARLY_SEND_COMPLETION -DMEMORY_SCALE -DVIADEV_RPUT_SUPPORT -D_SMP_ -D_SMP_RNDV_ -DCH_GEN2 -D_GNU_SOURCE ${COMPILER_FLAG} ${HAVE_MPD_RING} -I${IBHOME}/include $OPT_FLAG}

export MPIRUN_CFLAGS="${MPIRUN_CFLAGS} -DLD_LIBRARY_PATH_MPI=\\\"${PREFIX}/lib/shared\\\" -DPARAM_GLOBAL=\\\"${PREFIX}/etc/mvapich.conf\\\""

# Prelogue
make distclean &>/dev/null
set -o pipefail

# Configure MVAPICH

echo "Configuring MVAPICH..."

./configure --enable-shared-lib --with-device=ch_gen2 --with-arch=LINUX -prefix=${PREFIX} \
	--enable-f77 --enable-f90 --enable-f90modules $ROMIO -lib="$LIBS" 2>&1 |tee config-mine.log
ret=$?
test $ret = 0 ||  die "configuration."

# Build MVAPICH
echo "Building MVAPICH..."
make 2>&1 |tee make-mine.log 
ret=$?
test $ret = 0 ||  die "building MVAPICH."

# Install MVAPICH
echo "MVAPICH installation..."
rm -f install-mine.log 
make install 2>&1 |tee install-mine.log
ret=$?
test $ret = 0 ||  die "installing MVAPICH."


More information about the mvapich-discuss mailing list