[overture] Re: Parallel compilation help

  • From: "Chand, Kyle K." <chand1@xxxxxxxx>
  • To: "overture@xxxxxxxxxxxxx" <overture@xxxxxxxxxxxxx>
  • Date: Thu, 31 Oct 2013 22:12:29 +0000

Hi Debo,

There seems to be a slight bug in the configure script.  Try replacing the 
lines near line 515 in configure with:

  elsif( $arg =~ /^CC=(.*)/ )
  {
    $CC = $1;  $CC =~ s/ //g;
    if( $CC eq "kcc" ){ $CC = "KCC"; }
  }
  elsif( $arg =~ /^cc=(.*)/ )
  {
    $cc = $1; $cc =~ s/ //g;
  }

In other words, add the "^" before the CC and cc in the elsif tests.  It worked 
for me after this change.

Kyle

-----Original Message-----
From: overture-bounce@xxxxxxxxxxxxx [mailto:overture-bounce@xxxxxxxxxxxxx] On 
Behalf Of Debojyoti Ghosh
Sent: Thursday, October 31, 2013 2:36 PM
To: overture@xxxxxxxxxxxxx
Subject: [overture] Re: Parallel compilation help

Hi Kyle,

Thanks for the help. I am trying this configure command that you suggested:
./configure linux parallel CC=mpicxx FC=mpif90 bCC=g++ bFC=gfortran

This results in the make.options below. Note that the configure script is 
assigning the serial g++ and gcc compilers to both CC/cc and bCC/bcc. I am not 
sure why this is happening.

If I try to configure without specifying bCC as g++, then it does not remove 
the blank space between "-Wl,-rpath" and OV_PERL_LIB, and I get an error during 
make.

Thanks,
Debo

----------------------------------------------------
# This file was generated by the Overture configure script # It can be included 
in other makefiles to define compilers etc.
# machine=linux
# arch=
# double=Compiled in double precision
# parallel=parallel
CXX = g++
CC  = gcc
FC  = mpif90
bCXX = g++
bCC  = gcc
bFC  = gfortran
LIB64 = lib64
OV_PARALLEL = parallel
OV_AUTO_DOUBLE_FLAGS = -fdefault-real-8 -fdefault-double-8 OV_CXX_FLAGS = -fPIC 
OV_CC_FLAGS = -fPIC OV_FORTRAN_FLAGS = -fPIC OV_SHARED_LIB_FLAGS = -shared 
APlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
PPlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
OV_RPATH = -Wl,-rpath,
OV_FORTRAN_LIBRARIES =-lgfortran
OV_PERL_LIB = /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE
OV_PERL_LIBRARIES =$(OV_RPATH)$(OV_PERL_LIB) -L$(OV_PERL_LIB) -lperl -lresolv 
-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc OV_OPENGL = /usr OV_OPENGL_LIB_DIR 
= $(OV_OPENGL)/lib64 OV_OPENGL_LIBRARIES = $(OV_RPATH)$(OV_OPENGL_LIB_DIR) 
-L$(OV_OPENGL_LIB_DIR) -lGL -lGLU -lGLw OV_MOTIF_LIB = /usr/lib64 
OV_MOTIF_LIBRARIES = $(OV_RPATH)$(OV_MOTIF_LIB) -L$(OV_MOTIF_LIB) -lXm OV_XLIBS 
=  /usr OV_XLIBS_LIB = $(OV_XLIBS)/lib64 OV_X_LIBRARIES = -L$(OV_XLIBS_LIB) 
-lXpm -lXp -lXt -lXmu -lXi -lXext -lX11 OV_COMPILER_LIBS = 
$(OV_RPATH)/soft/gcc/4.4.2/lib64 -L/soft/gcc/4.4.2/lib64 HDF = 
/home/ghosh/Fusion/Overture/parallel/hdf5-1.8.8
OV_HDF_LIBRARIES = $(OV_RPATH)$(HDF)/lib -L$(HDF)/lib -lhdf5 -ljpeg -lz 
OV_PARALLEL_INCLUDE = -I/soft/mvapich2/1.4-gcc-4.4.2-shared/include -DUSE_PPP 
APP_LIBRARIES = $(OV_RPATH)$(PPlusPlus)/lib -L$(PPlusPlus)/lib -lPpp 
-lPpp_static -Wl,-rpath,/soft/mvapich2/1.4-gcc-4.4.2-shared/lib 
-L/soft/mvapich2/1.4-gcc-4.4.2-shared/lib -L/var/tmp/pvfs-2.8.2/usr/lib 
-L/usr/lib64 -lmpich -lpthread -lrdmacm -libverbs -libumad -lpthread -lrdmacm 
-libverbs -libumad -lpvfs2 -lcrypto -lssl -lpthread -libverbs -lrt 
OVERTURE_LIBRARIES = $(OV_RPATH)$(Overture)/lib -L$(Overture)/lib  -lOverture 
-lOverture_static
----------------------------------------------------



----- Original Message -----
From: "Kyle K. Chand" <chand1@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Thursday, October 31, 2013 3:54:24 PM
Subject: [overture] Re: Parallel compilation help

Hi Debo,

You may want to try specifying the "base" fortran and  C++ compilers so that 
the configure script knows you are using gcc and gfortran under the hood.  
"configure --help" will give more details, but try:

./configure linux parallel CC=mpicxx FC=mpif90 bCC=g++ bFC=gfortran

Kyle

-----Original Message-----
From: overture-bounce@xxxxxxxxxxxxx [mailto:overture-bounce@xxxxxxxxxxxxx] On 
Behalf Of Debojyoti Ghosh
Sent: Thursday, October 31, 2013 1:45 PM
To: overture@xxxxxxxxxxxxx
Subject: [overture] Parallel compilation help

Hi,

I am trying install the parallel version of Overture and CG on a cluster. I was 
able to successfully install the serial version using GNU compilers (v4.4.2) on 
this same cluster. I am having trouble compiling the parallel version.

I use:

./configure parallel CC=mpicxx cc=mpicc FC=mpif90

Resulting the following make.options:

------------------------------------------------------------------
# This file was generated by the Overture configure script # It can be included 
in other makefiles to define compilers etc.
# machine=linux
# arch=LINUX
# double=Compiled in double precision
# parallel=parallel
CXX = mpicxx
CC  = mpicc
FC  = mpif90
bCXX = mpicxx
bCC  = mpicc
bFC  = mpif90
LIB64 = lib64
OV_PARALLEL = parallel
OV_AUTO_DOUBLE_FLAGS = -r8 -i4
OV_CXX_FLAGS = -fPIC
OV_CC_FLAGS = -fPIC
OV_FORTRAN_FLAGS = -fPIC
OV_SHARED_LIB_FLAGS = -shared
APlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
PPlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
OV_RPATH = -Wl,-rpath,
OV_FORTRAN_LIBRARIES =
OV_PERL_LIB = /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE
OV_PERL_LIBRARIES =$(OV_RPATH)$(OV_PERL_LIB) -L$(OV_PERL_LIB) -lperl -lresolv 
-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc OV_OPENGL = /usr OV_OPENGL_LIB_DIR 
= $(OV_OPENGL)/lib64 OV_OPENGL_LIBRARIES = $(OV_RPATH)$(OV_OPENGL_LIB_DIR) 
-L$(OV_OPENGL_LIB_DIR) -lGL -lGLU -lGLw OV_MOTIF_LIB = /usr/lib64 
OV_MOTIF_LIBRARIES = $(OV_RPATH)$(OV_MOTIF_LIB) -L$(OV_MOTIF_LIB) -lXm OV_XLIBS 
=  /usr OV_XLIBS_LIB = $(OV_XLIBS)/lib64 OV_X_LIBRARIES = -L$(OV_XLIBS_LIB) 
-lXpm -lXp -lXt -lXmu -lXi -lXext -lX11 OV_COMPILER_LIBS= HDF = 
/home/ghosh/Fusion/Overture/parallel/hdf5-1.8.8
OV_HDF_LIBRARIES = $(OV_RPATH)$(HDF)/lib -L$(HDF)/lib -lhdf5 -ljpeg -lz 
OV_PARALLEL_INCLUDE = -I/soft/mvapich2/1.4-gcc-4.4.2-shared/include -DUSE_PPP 
APP_LIBRARIES = $(OV_RPATH)$(PPlusPlus)/lib -L$(PPlusPlus)/lib -lPpp 
-lPpp_static -Wl,-rpath,/soft/mvapich2/1.4-gcc-4.4.2-shared/lib 
-L/soft/mvapich2/1.4-gcc-4.4.2-shared/lib -L/var/tmp/pvfs-2.8.2/usr/lib 
-L/usr/lib64 -lmpich -lpthread -lrdmacm -libverbs -libumad -lpthread -lrdmacm 
-libverbs -libumad -lpvfs2 -lcrypto -lssl -lpthread -libverbs -lrt 
OVERTURE_LIBRARIES = $(OV_RPATH)$(Overture)/lib -L$(Overture)/lib  -lOverture 
-lOverture_static
------------------------------------------------------------------

This results in the following error:

mpif90 -fPIC   -r8 -i4 -g 
-I/home/ghosh/Fusion/Overture/parallel/Overture.v25/include -I.  -c 
dbFunctions.f 
gfortran: unrecognized option '-r8'
f951: error: unrecognized command line option "-i4"
make[1]: *** [DataBase2_date] Error 1


Now if I try the following configure command:

./configure parallel CC=mpicxx cc=mpicc FC=mpif90 bCC=g++ bcc=gcc FC=gfortran

Then the resulting make.options file is:

------------------------------------------------------------------
# This file was generated by the Overture configure script # It can be included 
in other makefiles to define compilers etc.
# machine=linux
# arch=LINUX
# double=Compiled in double precision
# parallel=parallel
CXX = g++
CC  = gcc
FC  = gfortran
bCXX = g++
bCC  = gcc
bFC  = gfortran
LIB64 = lib64
OV_PARALLEL = parallel
OV_AUTO_DOUBLE_FLAGS = -fdefault-real-8 -fdefault-double-8 OV_CXX_FLAGS = -fPIC 
OV_CC_FLAGS = -fPIC OV_FORTRAN_FLAGS = -fPIC OV_SHARED_LIB_FLAGS = -shared 
APlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
PPlusPlus = /home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install
OV_RPATH = -Wl,-rpath,
OV_FORTRAN_LIBRARIES =-lgfortran
OV_PERL_LIB = /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE
OV_PERL_LIBRARIES =$(OV_RPATH)$(OV_PERL_LIB) -L$(OV_PERL_LIB) -lperl -lresolv 
-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc OV_OPENGL = /usr OV_OPENGL_LIB_DIR 
= $(OV_OPENGL)/lib64 OV_OPENGL_LIBRARIES = $(OV_RPATH)$(OV_OPENGL_LIB_DIR) 
-L$(OV_OPENGL_LIB_DIR) -lGL -lGLU -lGLw OV_MOTIF_LIB = /usr/lib64 
OV_MOTIF_LIBRARIES = $(OV_RPATH)$(OV_MOTIF_LIB) -L$(OV_MOTIF_LIB) -lXm OV_XLIBS 
=  /usr OV_XLIBS_LIB = $(OV_XLIBS)/lib64 OV_X_LIBRARIES = -L$(OV_XLIBS_LIB) 
-lXpm -lXp -lXt -lXmu -lXi -lXext -lX11 OV_COMPILER_LIBS = 
$(OV_RPATH)/soft/gcc/4.4.2/lib64 -L/soft/gcc/4.4.2/lib64 HDF = 
/home/ghosh/Fusion/Overture/parallel/hdf5-1.8.8
OV_HDF_LIBRARIES = $(OV_RPATH)$(HDF)/lib -L$(HDF)/lib -lhdf5 -ljpeg -lz 
OV_PARALLEL_INCLUDE = -I/soft/mvapich2/1.4-gcc-4.4.2-shared/include -DUSE_PPP 
APP_LIBRARIES = $(OV_RPATH)$(PPlusPlus)/lib -L$(PPlusPlus)/lib -lPpp 
-lPpp_static -Wl,-rpath,/soft/mvapich2/1.4-gcc-4.4.2-shared/lib 
-L/soft/mvapich2/1.4-gcc-4.4.2-shared/lib -L/var/tmp/pvfs-2.8.2/usr/lib 
-L/usr/lib64 -lmpich -lpthread -lrdmacm -libverbs -libumad -lpthread -lrdmacm 
-libverbs -libumad -lpvfs2 -lcrypto -lssl -lpthread -libverbs -lrt 
OVERTURE_LIBRARIES = $(OV_RPATH)$(Overture)/lib -L$(Overture)/lib  -lOverture 
-lOverture_static
------------------------------------------------------------------

The source files are compiled till it hits the first file with MPI content and 
results in this error:

g++ -DHAVE_CONFIG_H -I. 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../..
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../PARTI
 -I/include    
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PADRE/src
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PADRE
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PADRE/PGSLIB
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PADRE/PGSLIB
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PGSLIB
 
-I/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../PGSLIB
 -O  -fPIC -Wno-deprecated -c partitioning.C
partitioning.C:10:20: error: mpi.h: No such file or directory In file included 
from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/port.h:43,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/bsparti.h:271,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++_headers.h:97,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++.h:24,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/A++.h:8045,
                 from partitioning.C:11:
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:24:
 error: ‘MPI_Request’ has not been declared
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:25:
 error: ‘MPI_Request’ has not been declared
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:27:
 error: ‘MPI_Request’ has not been declared
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:28:
 error: ‘MPI_Request’ has not been declared
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:29:
 error: ‘MPI_Request’ was not declared in this scope
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:29:
 error: ‘gid’ was not declared in this scope
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:30:
 error: ‘MPI_Request’ was not declared in this scope
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/mpi-port.h:30:
 error: ‘gid’ was not declared in this scope In file included from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/bsparti.h:271,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++_headers.h:97,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++.h:24,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/A++.h:8045,
                 from partitioning.C:11:
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../PARTI/port.h:56:
 error: ‘MPI_Comm’ does not name a type In file included from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++_headers.h:106,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/P++.h:24,
                 from 
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/A++.h:8045,
                 from partitioning.C:11:
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/comm_man.h:46:
 error: ‘MPI_Group’ does not name a type
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/comm_man.h:47:
 error: ‘MPI_Comm’ does not name a type
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/comm_man.h:99:
 error: ISO C++ forbids declaration of ‘MPI_Comm’ with no type
/home/ghosh/Fusion/Overture/parallel/A++P++-0.8.0/P++/install/../src/array_src/../../include/comm_man.h:99:
 error: expected ‘;’ before ‘&’ token
make[1]: *** [partitioning.o] Error 1


So what should I do so that I am able to use the MPI compilers *and* mpif90 
gets the correct flags (-fdefault-real-8 -fdefault-double-8) to compile the 
Fortran sources?

Thanks,
Debo

--
Debojyoti Ghosh
ghosh@xxxxxxxxxxx
http://www.mcs.anl.gov/~ghosh


-- 
Debojyoti Ghosh
ghosh@xxxxxxxxxxx
http://www.mcs.anl.gov/~ghosh

Other related posts: