compile error with openmpi
hello,all
I came across one problem when I tried to compile the python-escript5.1 on ubuntu 16.04. so i chose the xenial_options.py. I modified it as follows.
escript_
openmp = True
boost_libs = ['boost_
mpi = 'OPENMPI'
mpi_prefix = ['/usr/
mpi_libs = ['mpi_cxx', 'mpi', 'open-rte', 'open-pal']
netcdf = True
umfpack = True
umfpack_prefix = ['/usr/
umfpack_libs = ['umfpack', 'blas', 'amd']
lapack_prefix = ['/usr/
dudley_
gmsh = True
gmsh_prefix = ['/home/
but when I use the command 'scons -j4 options_
Linking build/posix/
Install file: "build/
/home/han/
[Dura:15292] [[18645,0],0] tcp_peer_
it stayed at the command line for a long time and can not continue.
anyone can figure out what the matter is ?
looking forwards to your reply
best regards
han zhijian
Question information
- Language:
- English Edit question
- Status:
- Answered
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Revision history for this message
|
#1 |
the config.log shows as follows:
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking whether the C++ compiler works...
.sconf_
|
|int main()
|{
| return 0;
|}
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function gethostname()...
.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...
.sconf_
|
|#include "byteswap.h"
|
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function SCbswap32()...
.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...
.sconf_
|
|#include "sys/endian.h"
|
|
g++ -o .sconf_
.sconf_
compilation terminated.
scons: Configure: no
scons: Configure: Checking for C++ header file libkern/
.sconf_
|
|#include "libkern/
|
|
g++ -o .sconf_
.sconf_
compilation terminated.
scons: Configure: no
scons: Configure: Checking for working complex std::acos()...
.sconf_
|
|#include <complex>
|int main() { std::complex<
|return std::abs(
|
g++ -o .sconf_
g++ -o .sconf_
.sconf_
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file Python.h...
.sconf_
|
|#include "Python.h"
|
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function Py_Exit()...
.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/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library boost_python-
.sconf_
|
|
|#include "boost/python.hpp"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file numpy/ndarrayob
.sconf_
|#include "Python.h"
|
|#include "numpy/
|
|
g++ -o .sconf_
In file included from /usr/include/
/usr/include/
#warning "Using deprecated NumPy API, disable it by " \
^
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library netcdf_c++...
.sconf_
|
|
|#include "netcdf.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library umfpack...
.sconf_
|
|
|#include "umfpack.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library mpi_cxx...
.sconf_
|
|
|#include "mpi.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/han/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library boost_iostreams...
.sconf_
|
|
|#include "boost/
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
Revision history for this message
|
#2 |
My first guess is that there is a problem with OpenMPI. Are you have to run other OpenMPI applications?
Revision history for this message
|
#3 |
"1.10.2 instead of 1.8.4"
- looks like a version mismatch. What does the following output:
which mpirun
mpirun -V
dpkg -l | grep openmpi
Revision history for this message
|
#4 |
Hi,
Sorry to add my similar problems as I compile my optional files with mpi = 'OPENMPI'
It comes out:
RuntimeError: Unable to link against ['mpi_cxx', 'mpi', 'open-rte', 'open-pal'] (paths: /usr/lib/
File "/home/
env=
File "/home/
mpi_
File "/home/
raise RuntimeError(
And the config.log is:
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking whether the C++ compiler works...
.sconf_
|
|int main()
|{
| return 0;
|}
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function gethostname()...
.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...
.sconf_
|
|#include "byteswap.h"
|
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function SCbswap32()...
.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...
.sconf_
|
|#include "sys/endian.h"
|
|
g++ -o .sconf_
.sconf_
compilation terminated.
scons: Configure: no
scons: Configure: Checking for C++ header file libkern/
.sconf_
|
|#include "libkern/
|
|
g++ -o .sconf_
.sconf_
compilation terminated.
scons: Configure: no
scons: Configure: Checking for working complex std::acos()...
.sconf_
|
|#include <complex>
|int main() { std::complex<
|return std::abs(
|
g++ -o .sconf_
g++ -o .sconf_
.sconf_
scons: Configure: yes
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file Python.h...
.sconf_
|
|#include "Python.h"
|
|
g++ -o .sconf_
scons: Configure: yes
scons: Configure: Checking for C++ function Py_Exit()...
.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/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library boost_python-
.sconf_
|
|
|#include "boost/python.hpp"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file numpy/ndarrayob
.sconf_
|#include "Python.h"
|
|#include "numpy/
|
|
g++ -o .sconf_
In file included from /usr/include/
/usr/include/
#warning "Using deprecated NumPy API, disable it by " \
^
scons: Configure: yes
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library netcdf_c++...
.sconf_
|
|
|#include "netcdf.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library umfpack...
.sconf_
|
|
|#include "umfpack.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
g++ -o .sconf_
scons: Configure: yes
file /home/lc/
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ library mpi_cxx...
.sconf_
|
|
|#include "mpi.h"
|
|int
|main() {
|
|return 0;
|}
|
g++ -o .sconf_
scons: Configure: Caught exception while building ".sconf_
Traceback (most recent call last):
File "/usr/lib/
task.prepare()
File "/usr/lib/
t.prepare()
File "/usr/lib/
SCons.
File "/usr/lib/
raise SCons.Errors.
SCons.Errors.
scons: Configure: no
Revision history for this message
|
#5 |
$which mpirun
/usr/bin/mpirun
$ mpirun -V
mpirun (Open MPI) 1.10.2
$ dpkg -l | grep openmpi
ii libhdf5-
ii libopenmpi-dev 1.10.2-8ubuntu1 amd64 high performance message passing library -- header files
ii libopenmpi1.10 1.10.2-8ubuntu1 amd64 high performance message passing library -- shared library
ii openmpi-bin 1.10.2-8ubuntu1 amd64 high performance message passing library -- binaries
ii openmpi-common 1.10.2-8ubuntu1 all high performance message passing library -- common files
Revision history for this message
|
#6 |
As in your other question #647829 I think your installation of OpenMPI is incomplete. Try reinstalling as suggested there.
Can you help with this problem?
Provide an answer of your own, or ask hanzj for more information if necessary.