I can not compile with openmpi
My name is Kasemsak Saetang. I am a physics lecturer of Nakhon Si Thammarat Rajabhat University. I completely installed python-escript 4.0 without mpi on a high performance computer under Cent OS 7.0. Because my data took a lot of to run, I considered to use openmpi. I got a problem to set link against of mpi. I don't khow what a problem. My mpi version is openmpi-1.8.4.
My configuration is
# Flavour of MPI implementation
# Recognized values: 'none', 'MPT', 'MPICH', 'MPICH2', 'OPENMPI', 'INTELMPI'
# DEFAULT: 'none' (disable MPI)
mpi = 'OPENMPI'
# Prefix or paths to MPI headers and libraries. See note above about prefixes.
mpi_prefix = '/opt/openmpi-
# MPI libraries to link against
#mpi_libs = ['mpi_cxx', 'mpi', 'open-rte', 'open-pal']
The error message is
Checking whether the C++ compiler works... (cached) yes
Checking for C++ function gethostname()... (cached) yes
Checking for C++ header file byteswap.h... (cached) yes
Checking for C++ function SCbswap32()... (cached) yes
Checking for C++ header file sys/endian.h... (cached) no
Checking for C++ header file libkern/
Checking for C++ header file Python.h... (cached) yes
Checking for C++ function Py_Exit()... (cached) yes
Checking for C++ library boost_python-mt... (cached) yes
Checking for C++ header file numpy/ndarrayob
Checking for C++ library netcdf_c++... (cached) yes
Checking for C++ library siloh5... (cached) yes
Checking for C++ library mpi... no
RuntimeError: Unable to link against ['mpi'] (paths: /opt/openmpi-
File "/home/
env=
File "/home/
mpi_
File "/home/
raise RuntimeError(
[c10c0em@hydrogen python-
Please tell me how I can solve that ?
Sincerely,
Kasemsak Saetang
Question information
- Language:
- English Edit question
- Status:
- Solved
- Assignee:
- No assignee Edit question
- Solved by:
- Bob
- Solved:
- Last query:
- Last reply:
Revision history for this message
|
#1 |
I haven't looked at this in great detail but you've said that your version is openmpi-1.8.4. But your config points to openmpi-1.8.5
Revision history for this message
|
#2 |
I try to used many version but, it is the same problem. In our HPC, we can source mpich, mpich2, openmpi1.8.4, openmpi1.8.5 and mpich2 installed by Anaconda. I don't khow how to set mpi_libs = and which mpi version that I should use. I can run the code without mpi by set mpi = 'none'. It take a lot of time to run. I want to use mpi with run-escript -n 4 -p 16
Revision history for this message
|
#4 |
Do you have openmpi-devel installed?
Revision history for this message
|
#5 |
I am quite confident that you need to link against mpi_cxx etc, so you may just have to uncomment the line that start with mpi_libs=...
But in order to help it might be useful to see the output in config.log
Revision history for this message
|
#6 |
To Manfred Hamp
I am not a root user and don't have root passqord . I will ask a HPC staff.
To Cihan Altinay
I have used mpi_libs = ['mpi_cxx', 'mpi', 'open-rte', 'open-pal'] many time. I try to change mpi_libs = ['mpirun', 'mpif77', 'mpif90', 'mpifortl' It is not woking.
RuntimeError: Unable to link against ['mpi_cxx', 'mpi', 'open-rte', 'open-pal'] (paths: /opt/openmpi-
File "/home/
env=
File "/home/
mpi_
File "/home/
raise RuntimeError(
Revision history for this message
|
#7 |
Ok, the command
mpicc -show
should show you the required libraries.
However, it would be best if you could copy/paste the relevant output from your config.log
Revision history for this message
|
#9 |
[c10c0em@hydrogen python-
g++ -I/home/
Revision history for this message
|
#10 |
Now I reinstall openmpi.
./configure --prefix=
[c10c0em@hydrogen installed]$ ls bin/
mpic++ mpifort-vt orte-ps otfmerge vtf90
mpicc mpirun orterun otfmerge-mpi vtfilter
mpiCC ompi-clean orte-server otfprint vtfiltergen
mpicc-vt ompi_info orte-submit otfprofile vtfiltergen-mpi
mpiCC-vt ompi-ps orte-top otfprofile-mpi vtfilter-mpi
mpic++-vt ompi-server oshcc otfshrink vtfort
mpicxx ompi-top oshfort shmemcc vtrun
mpicxx-vt opal_wrapper oshmem_info shmemfort vtsetup
mpiexec opari oshrun shmemrun vtsetup.jar
mpif77 ortecc otfaux vtc++ vtunify
mpif77-vt orte-clean otfcompress vtcc vtunify-mpi
mpif90 orted otfconfig vtCC vtwrapper
mpif90-vt orte-dvm otfdecompress vtcxx
mpifort orte-info otfinfo vtf77
After that
# Flavour of MPI implementation
# Recognized values: 'none', 'MPT', 'MPICH', 'MPICH2', 'OPENMPI', 'INTELMPI'
# DEFAULT: 'none' (disable MPI)
mpi = 'OPENMPI'
# Prefix or paths to MPI headers and libraries. See note above about prefixes.
mpi_prefix = '/home/
# MPI libraries to link against
mpi_libs = ['mpi_cxx', 'mpi', 'open-rte', 'open-pal']
It is error again.
[c10c0em@hydrogen python-
scons: Reading SConscript files ...
Using options in scons/templates
Checking whether the C++ compiler works... (cached) yes
Checking for C++ function gethostname()... (cached) yes
Checking for C++ header file byteswap.h... (cached) yes
Checking for C++ function SCbswap32()... (cached) yes
Checking for C++ header file sys/endian.h... (cached) no
Checking for C++ header file libkern/
Checking for C++ header file Python.h... (cached) yes
Checking for C++ function Py_Exit()... (cached) yes
Checking for C++ library boost_python-mt... yes
Checking for C++ header file numpy/ndarrayob
Checking for C++ library netcdf_c++... yes
Checking for C++ library siloh5... yes
Checking for C++ library mpi_cxx... no
RuntimeError: Unable to link against ['mpi_cxx', 'mpi', 'open-rte', 'open-pal'] (paths: /home/users/
File "/home/
env=
File "/home/
mpi_
File "/home/
raise RuntimeError(
Revision history for this message
|
#11 |
mpicxx -show
g++ -I/home/
Revision history for this message
|
#12 |
At this stage we really need the compiler output from the config.log file. You can find this file in the escript source tree where you ran scons.
Revision history for this message
|
#13 |
This is config.log
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking whether the C++ compiler works...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |int main()
| |{
| | return 0;
| |}
| |
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function gethostname()...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include <assert.h>
| |
| |#ifdef __cplusplus
| |extern "C"
| |#endif
| |char gethostname();
| |
| |int main() {
| |#if defined (__stub_
| | fail fail fail
| |#else
| | gethostname();
| |#endif
| |
| | return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ header file byteswap.h...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |#include "byteswap.h"
| |
| |
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function SCbswap32()...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include <assert.h>
| |#include <byteswap.h>
| |#define SCbswap32() {int x=0;bswap_32(x);}
| |
| |int main() {
| |#if defined (__stub_SCbswap32) || defined (__stub_
| | fail fail fail
| |#else
| | SCbswap32();
| |#endif
| |
| | return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ header file sys/endian.h...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |#include "sys/endian.h"
| |
| |
|
g++ -o .sconf_
.sconf_
scons: Configure: no
scons: Configure: Checking for C++ header file libkern/
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |#include "libkern/
| |
| |
|
g++ -o .sconf_
.sconf_
scons: Configure: no
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file Python.h...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |#include "Python.h"
| |
| |
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function Py_Exit()...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include <assert.h>
| |
| |#ifdef __cplusplus
| |extern "C"
| |#endif
| |char Py_Exit();
| |
| |int main() {
| |#if defined (__stub_Py_Exit) || defined (__stub___Py_Exit)
| | fail fail fail
| |#else
| | Py_Exit();
| |#endif
| |
| | return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library boost_python-mt...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include "boost/python.hpp"
| |
| |int
| |main() {
| |
| |return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file numpy/ndarrayob
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |#include "Python.h"
| |
| |#include "numpy/
| |
| |
|
g++ -o .sconf_
scons: Configure: yes
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library netcdf_c++...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include "netcdf.h"
| |
| |int
| |main() {
| |
| |return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library siloh5...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include "silo.h"
| |
| |int
| |main() {
| |
| |return 0;
| |}
| |
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/users/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library mpi_cxx...
scons: Configure: ".sconf_
scons: Configure: The original builder output was:
|.sconf_
| |
| |
| |#include "mpi.h"
| |
| |int
| |main() {
| |
| |return 0;
| |}
| |
|
g++ -o .sconf_
In file included from .sconf_
/home/users/
/home/users/
/home/users/
In file included from .sconf_
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
/home/users/
scons: Configure: no
Revision history for this message
|
#14 |
There are two issues here:
Firstly, you need to remove the scons database when you change your options file or you will get bogus results.
To remove the scons database and intermediate files issue:
rm -r .sconsign.dblite .sconf_temp
Secondly, it appears the problem is actually a parmetis issue - you need to install metis *and* parmetis. It looks like metis is missing.
Cihan
Revision history for this message
|
#15 |
Thanks Cihan Altinay, that solved my question.
Revision history for this message
|
#16 |
It is running.
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
inv.GravityInve
I am not not sure it ok or not. I can not compile with parmetis.
The installed results is
*** Config Summary (see config.log and <prefix>
Escript/Finley revision -2
Install prefix: /home/users/
Python: /home/users/
boost: ['/home/
numpy: YES (with headers)
MPI: YES (flavour: OPENMPI)
ParMETIS: NO
LAPACK: NO
CUDA: NO
openmp: YES
gdal: YES
netcdf: YES
pyproj: YES
scipy: YES
sympy: YES
debug: NO
boomeramg: NO
cppunit: NO
mkl: NO
papi: NO
silo: NO
umfpack: NO
visit: NO
gmsh: YES
gzip: NO
Treating warnings as errors
SUCCESS: build complete
Revision history for this message
|
#17 |
Your installation is ok. Parmetis is not a requirement, it's only used to optimize domain decomposition for unstructured domains.
If you have any other questions please open a separate issue.
Revision history for this message
|
#18 |
Thanks Cihan Altinay, that solved my question.