Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: kargl@xxxxxxxxxxxxxxxxxxxxxxxxxxxx (Steven G. Kargl)
- Date: Wed, 31 Oct 2007 17:53:51 +0000 (UTC)
In article <_i2Wi.183423$z14.9195607@xxxxxxxxxxxxxxxxxxxxx>,
Bart Vandewoestyne <MyFirstName.MyLastName@xxxxxxxxxx> writes:
On 2007-10-31, Steven G. Kargl <kargl@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
If you need to add this option, then you're going to need to find
out what compiler options were used when the Open MPI package was
created. In particularly, this suggests that the -ff2c option
was used. This option is typically undesirable and only needed
when dealing with g77 compiled libraries that can't be rebuilt
with gfortran. It is also possible that some odd non-default
options were set in CFLAGS, which may affect the ABI.
Steven,
Thanks for your kind answers, but more questions are popping up in my head:
1) Is there a standard way to find out what compiler flags were
used for creating the Open MPI Kubuntu package? Do you mean
something like this?
bartv@kortrijk:~$ mpif90 -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
See if you can find ompi_info on your system. It will give you the
compilers used but not the options.
/usr/local/openmpi/bin/ompi_info | more
Open MPI: 1.2.3
Open MPI SVN revision: r15136
Open RTE: 1.2.3
Open RTE SVN revision: r15136
OPAL: 1.2.3
OPAL SVN revision: r15136
Prefix: /usr/local/openmpi
Configured architecture: x86_64-unknown-freebsd7.0
Configured by: kargl
Configured on: Fri Jun 29 09:38:35 PDT 2007
Configure host: node10.cimu.org
Built by: kargl
Built on: Fri Jun 29 09:54:52 PDT 2007
Built host: node10.cimu.org
C bindings: yes
C++ bindings: yes
Fortran77 bindings: yes (all)
Fortran90 bindings: yes
Fortran90 bindings size: small
C compiler: gcc
C compiler absolute: /usr/bin/gcc
C++ compiler: g++
C++ compiler absolute: /usr/bin/g++
Fortran77 compiler: gfortran
Fortran77 compiler abs: /usr/local/bin/gfortran
Fortran90 compiler: gfortran
Fortran90 compiler abs: /usr/local/bin/gfortran
C profiling: yes
C++ profiling: yes
Fortran77 profiling: yes
Fortran90 profiling: yes
C++ exceptions: no
Thread support: posix (mpi: no, progress: no)
Internal debug support: no
MPI parameter check: runtime
Memory profiling support: no
Memory debugging support: no
libltdl support: yes
Heterogeneous support: yes
mpirun default --prefix: yes
This last line is important, and it depends on how Open MPI was
configured. From the openmpi-1.2.3 README file.
- The Open MPI installation must be in your PATH on all nodes (and
potentially LD_LIBRARY_PATH, if libmpi is a shared library), unless
using the --prefix or --enable-mpirun-prefix-by-default
functionality (see below).
Further down in the list of confiugre options is
--enable-mpirun-prefix-by-default
This option forces the "mpirun" command to always behave as if
"--prefix $prefix" was present on the command line (where $prefix is
the value given to the --prefix option to configure). This prevents
most rsh/ssh-based users from needing to modify their shell startup
files to set the PATH and/or LD_LIBRARY_PATH for Open MPI on remote
nodes. Note, however, that such users may still desire to set PATH
-- perhaps even in their shell startup files -- so that executables
such as mpicc and mpirun can be found without needing to type long
path names. --enable-orterun-prefix-by-default is a synonym for
this option.
If this is what you mean, then I'm still puzzled what the exact mpif90 command
would be to try next...
2) What is an 'ABI'?
ABI means "application binary interface". It is possible to
give gcc (the C compiler) a set of options that conflict with
the set of options for gfortran. For example, by default gfortran
uses the calling conventions of gcc when constructing libraries.
If one uses the -ff2c, it changes the calling convention (see
the gfortran manual for more info). Another option (which should
be avoided) is -malign-double on i386 unless you explicitly recompile
the gfortran runtime library.
--
Steve
http://troutmask.apl.washington.edu/~kargl/
.
- References:
- OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Koen Poppe
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Steven G. Kargl
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Bart Vandewoestyne
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Steven G. Kargl
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Bart Vandewoestyne
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Steven G. Kargl
- Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- From: Bart Vandewoestyne
- OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- Prev by Date: Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- Next by Date: Re: Stack corruption and memory leak problems in c++/Fortran application
- Previous by thread: Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- Next by thread: Re: OpenMPI Fortran: 'Error reading module mpi' and unexpected but silent termination
- Index(es):
Relevant Pages
|