Hi,
We have been reported the following issue with LAM 7.1.1 compiled with
Pathscale compilers:
----------
I'm having problems when trying to run mpi c++ programs with LAM
compiled with the PathScale compilers. I'm using LAM version 7.1.1
with PathScale EKOPath Compilers version 2.2.1.
I compiled LAM with the following flags:
FC=pathf95
F77=pathf95
CC=pathcc
CXX=pathCC
and ran LAM configure as follows:
./configure --prefix=$LAMHOME \
--enable-shared \
--with-modules
LAM compiled and linked without any issues. I tested running a simple
mpi c program (cpi.c) and a simple mpi fortran program within LAM
without any problems. But I got the following error when running a
simple mpi c++ program:
[najib_at_oregon ~]$ mpirun C ./hello
MPI_Comm_rank: invalid communicator: Invalid argument (rank 0,
MPI_COMM_WORLD)
MPI_Comm_rank: invalid communicator: Invalid argument (rank 1,
MPI_COMM_WORLD)
Rank (1, MPI_COMM_WORLD): Call stack within LAM:
Rank (1, MPI_COMM_WORLD): - MPI_Comm_rank()
Rank (1, MPI_COMM_WORLD): - main()
-----------
Actually we found that LAM/MPI 7.1.1 Configure script makes an
assumption about compiler outputs which is not true for Pathscale
compilers. Therefore generating an invalid configuration to create the
LAM C++ shared library.
Here is a simple patch to the LAM/MPI 7.1.1 Configure script which
solves the build issue when using the "--enable-shared --with-modules"
flags.
$ cat configure.patch
33503a33504
> psc_deps_depth=2
33552c33553,33557
< pre_test_object_deps_done=yes
---
> if test "$CC" = "pathCC" -a $psc_deps_depth -eq 2 ; then
> psc_deps_depth=1
> else
> pre_test_object_deps_done=yes
> fi
To apply the patch, run the following command:
$ patch configure configure.patch
Hope this helps,
Didier
|