I found a weird problem with the way the configure script recognises the mpi1 and mpi2 versions of MPI installation. If I let the configure script decide by specifying "with_mpi_prefix" directory, it incorrectly sets MPI to MPI2 while in fact the installation is MPI1. As a result, the compilation crashes.
On the other hand, if I specify MPI installation in a step-wise fashion, via with_mpi_incs, with_mpi_level, with_mpi_libs, and MPI_RUNNER, the compilation crashes as well - albeit in a different place than in the previous case.
The situation can be fixed by running the configuration script relying in the "with_mpi_prefix" directory and afterwards setting manually MPI to MPI1 instead of MPI2 in the config.h file (produced by the configure script).
Then everything runs okay.
This happened with abinit versions 6.6.1 as well as 6.12.1 so it will be a more general issue. My system is openSUSE 10.3 (X86-64), MPI installatioon is 64-bit OpenMPI version 1.4.1 (but simular problems were, e.g., with 1.3.1 as well). I did not have this issue on other systems (e.g., openSUSE 11.4 or SUSE Linux Enterprise Server 10).
A quick fix by setting MPI to MPI1 manually in the config.h file after configuring the installation via "with_mpi_prefix" works. However, it is a nuissance and it may be too cumbersome for some users.
My knowledge of neither abinit, MPI or configure script is good enough to do a better diagnostics.
I tried to attach a gzipped tarball with few relevant files (and a "readme.txt" description) but the system does not allow *.tgz or *.tar or *.gz attachments. Everything can thus be download it from here: http://www.fzu.cz/~sipr/issues-mpi.tgz
Ondrej
problems with mpi1 and mpi2 distinction
Moderators: fgoudreault, mcote
Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Re: problems with mpi1 and mpi2 distinction
The build system of Abinit provides the --with-mpi-level option for broken MPI2 implementations. Please see ~abinit/doc/config/build-config.ac for details.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain
Simune Atomistics
Donostia-San Sebastián, Spain
Re: problems with mpi1 and mpi2 distinction
pouillon wrote:The build system of Abinit provides the --with-mpi-level option for broken MPI2 implementations. Please see ~abinit/doc/config/build-config.ac for details.
I am aware of the "with_mpi_level" option. I tried it (my implementation is MPI1 actually; it maybe in some way broken but certainly it works). I tried to explain and demonstrate this in the files available from the web:
http://www.fzu.cz/~sipr/issues-mpi.tgz
Particularly, referrring to that tarball:
a) configure was run with options:
config-file_mpi1.ac
b) Output from running the configure script:
config_mpi1.OUT
config_mpi1.log
A configuration file produced is this: config.h_mpi1
c) Compilation process crashes:
make_mpi1.OUT
In particular, even though the configure script was instructed to use an MPI-1 implementation, the compilation proceeded as if it was to use an MPI-2 implementation. Crash followed.
BTW: There are not really many "details" in the ~abinit/doc/config/build-config.ac file. Sure, there is a lot of options and switches and I tested them all. Without success. That's why I posted this issue.
Ondrej
Re: problems with mpi1 and mpi2 distinction
I see in config_mpi1.OUT that the build system of Abinit detects that MPI is not working. Looking at config_mpi1.log, it appears that CC and FC are set to non-MPI-capable compilers (gcc and gfortran). If you want to set the compilers yourself, then you should use:
or let the build system detect them by unsetting CC and FC, combined with the --with-mpi-prefix option.
Using --with-mpi-prefix is the recommended way to detect MPI. You may however set CC, CXX and FC at the same time if your MPI configuration requires them to be set. In such a case, the build system will take care of wrapping the MPI wrappers.
Code: Select all
CC="/path/to/mpicc"
FC="/path/to/mpif90"
or let the build system detect them by unsetting CC and FC, combined with the --with-mpi-prefix option.
Using --with-mpi-prefix is the recommended way to detect MPI. You may however set CC, CXX and FC at the same time if your MPI configuration requires them to be set. In such a case, the build system will take care of wrapping the MPI wrappers.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain
Simune Atomistics
Donostia-San Sebastián, Spain