import neuron MPI_Allreduce

When Python is the interpreter, what is a good
design for the interface to the basic NEURON
concepts.

Moderator: hines

nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

import neuron MPI_Allreduce

Post by nizar »

Hello all,

I'm trying to make neuron, python and mpich2 all work together.

compiling neuron:

Code: Select all

./configure --prefix=`pwd` --with-nrnpython=/usr/bin/python2 --with-paranrn --with-mpi MPICC=/opt/mpich2/bin/mpicc MPICXX=/opt/mpich2/bin/mpicxx && make && make install
compiling mpich2:

Code: Select all

./configure --prefix=/opt/mpich2  --with-pm=smpd --with-pmi=smpd --enable-sharedlibs=gcc && make && make install
python:

Code: Select all

Python 2.6.5 (release26-maint, Aug 22 2010, 12:25:09) 
[GCC 4.4.3] on linux2
installing nrnpython under src/nrnpython:

Code: Select all

running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/neuron
copying ../.././share/lib/python/neuron/sections.py -> build/lib.linux-x86_64-2.6/neuron
copying ../.././share/lib/python/neuron/doc.py -> build/lib.linux-x86_64-2.6/neuron
copying ../.././share/lib/python/neuron/gui.py -> build/lib.linux-x86_64-2.6/neuron
copying ../.././share/lib/python/neuron/__init__.py -> build/lib.linux-x86_64-2.6/neuron
creating build/lib.linux-x86_64-2.6/neuron/tests
copying ../.././share/lib/python/neuron/tests/test_all.py -> build/lib.linux-x86_64-2.6/neuron/tests
copying ../.././share/lib/python/neuron/tests/test_vector.py -> build/lib.linux-x86_64-2.6/neuron/tests
copying ../.././share/lib/python/neuron/tests/__init__.py -> build/lib.linux-x86_64-2.6/neuron/tests
running build_ext
building 'neuron.hoc' extension
creating build/temp.linux-x86_64-2.6
/opt/mpich2/bin/mpicxx -fPIC -I../.././src/oc -I../oc -I/usr/include/python2.6 -c inithoc.cpp -o build/temp.linux-x86_64-2.6/inithoc.o
In file included from /usr/include/python2.6/Python.h:8,
                 from inithoc.cpp:8:
/usr/include/python2.6/pyconfig.h:1067:1: warning: "_POSIX_C_SOURCE" redefined
In file included from /usr/include/stdio.h:28,
                 from /opt/mpich2/include/mpicxx.h:39,
                 from /opt/mpich2/include/mpi.h:1188,
                 from inithoc.cpp:3:
/usr/include/features.h:158:1: warning: this is the location of the previous definition
In file included from /usr/include/python2.6/Python.h:8,
                 from inithoc.cpp:8:
/usr/include/python2.6/pyconfig.h:1079:1: warning: "_XOPEN_SOURCE" redefined
In file included from /usr/include/stdio.h:28,
                 from /opt/mpich2/include/mpicxx.h:39,
                 from /opt/mpich2/include/mpi.h:1188,
                 from inithoc.cpp:3:
/usr/include/features.h:160:1: warning: this is the location of the previous definition
inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
inithoc.cpp:30: warning: deprecated conversion from string constant to 'char*'
inithoc.cpp:30: warning: deprecated conversion from string constant to 'char*'
x86_64-pc-linux-gnu-g++ -pthread -shared build/temp.linux-x86_64-2.6/inithoc.o -L/usr/local/nrn/x86_64/lib -L/usr/local/iv/x86_64/lib -L/usr/lib64 -lnrnpython -lnrnoc -loc -lnrniv -livoc -lmemacs -lmeschach -lneuron_gnu -lnrnmpi -lscopmath -lsparse13 -lsundials -lIVhines -lreadline -lpython2.6 -o build/lib.linux-x86_64-2.6/neuron/hoc.so -Wl,-R/usr/local/nrn/x86_64/lib -Wl,-R/usr/local/iv/x86_64/lib
running install_lib
copying build/lib.linux-x86_64-2.6/neuron/hoc.so -> /usr/lib64/python2.6/site-packages/neuron
running install_egg_info
Removing /usr/lib64/python2.6/site-packages/NEURON-7.0-py2.6.egg-info
Writing /usr/lib64/python2.6/site-packages/NEURON-7.0-py2.6.egg-info
mpich2version:

Code: Select all

MPICH2 Version:    	1.2.1p1
MPICH2 Release date:	Unknown, built on Sun Aug 22 11:13:12 IDT 2010
MPICH2 Device:    	ch3:nemesis
MPICH2 configure: 	--prefix=/opt/mpich2 --with-pm=smpd --with-pmi=smpd --enable-sharedlibs=gcc
MPICH2 CC: 	gcc -fPIC -O2
MPICH2 CXX: 	c++  -O2
MPICH2 F77: 	gfortran -fPIC -O2
MPICH2 F90: 	gfortran  -O2
now I can run:

Code: Select all

nrniv -mpi -python
but from python when trying to import neuron:

Code: Select all

ython 2.6.5 (release26-maint, Aug 22 2010, 12:25:09) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import neuron
/usr/lib64/python2.6/site-packages/neuron/__init__.py:92: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  """%e.message
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/neuron/__init__.py", line 92, in <module>
    """%e.message
ImportError: 
Can't import neuron.hoc module.

In case you are importing neuron from within
a directory containing neuron/__init__.py
which is not the installed neuron package for python,
move out of this directory and try again.

The original error message was: 

/usr/local/nrn/x86_64/lib/libsundials.so.0: undefined symbol: MPI_Allreduce
Any idea what is wrong?

Many thanks,
N.
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: import neuron MPI_Allreduce

Post by ted »

Looks like you skipped the
python setup.py install
step--see http://www.neuron.yale.edu/neuron/downl ... pile_linux
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

ted wrote:Looks like you skipped the
python setup.py install
step--see http://www.neuron.yale.edu/neuron/downl ... pile_linux
I didn't,

My original post:
installing nrnpython under src/nrnpython:

Code: Select all

    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.6
    creating build/lib.linux-x86_64-2.6/neuron
    copying ../.././share/lib/python/neuron/sections.py -> build/lib.linux-x86_64-2.6/neuron
    copying ../.././share/lib/python/neuron/doc.py -> build/lib.linux-x86_64-2.6/neuron
    copying ../.././share/lib/python/neuron/gui.py -> build/lib.linux-x86_64-2.6/neuron
    copying ../.././share/lib/python/neuron/__init__.py -> build/lib.linux-x86_64-2.6/neuron
    creating build/lib.linux-x86_64-2.6/neuron/tests
    copying ../.././share/lib/python/neuron/tests/test_all.py -> build/lib.linux-x86_64-2.6/neuron/tests
    copying ../.././share/lib/python/neuron/tests/test_vector.py -> build/lib.linux-x86_64-2.6/neuron/tests
    copying ../.././share/lib/python/neuron/tests/__init__.py -> build/lib.linux-x86_64-2.6/neuron/tests
    running build_ext
    building 'neuron.hoc' extension
    creating build/temp.linux-x86_64-2.6
    /opt/mpich2/bin/mpicxx -fPIC -I../.././src/oc -I../oc -I/usr/include/python2.6 -c inithoc.cpp -o build/temp.linux-x86_64-2.6/inithoc.o
    In file included from /usr/include/python2.6/Python.h:8,
                     from inithoc.cpp:8:
    /usr/include/python2.6/pyconfig.h:1067:1: warning: "_POSIX_C_SOURCE" redefined
    In file included from /usr/include/stdio.h:28,
                     from /opt/mpich2/include/mpicxx.h:39,
                     from /opt/mpich2/include/mpi.h:1188,
                     from inithoc.cpp:3:
    /usr/include/features.h:158:1: warning: this is the location of the previous definition
    In file included from /usr/include/python2.6/Python.h:8,
                     from inithoc.cpp:8:
    /usr/include/python2.6/pyconfig.h:1079:1: warning: "_XOPEN_SOURCE" redefined
    In file included from /usr/include/stdio.h:28,
                     from /opt/mpich2/include/mpicxx.h:39,
                     from /opt/mpich2/include/mpi.h:1188,
                     from inithoc.cpp:3:
    /usr/include/features.h:160:1: warning: this is the location of the previous definition
    inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
    inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
    inithoc.cpp:25: warning: deprecated conversion from string constant to 'char*'
    inithoc.cpp:30: warning: deprecated conversion from string constant to 'char*'
    inithoc.cpp:30: warning: deprecated conversion from string constant to 'char*'
    x86_64-pc-linux-gnu-g++ -pthread -shared build/temp.linux-x86_64-2.6/inithoc.o -L/usr/local/nrn/x86_64/lib -L/usr/local/iv/x86_64/lib -L/usr/lib64 -lnrnpython -lnrnoc -loc -lnrniv -livoc -lmemacs -lmeschach -lneuron_gnu -lnrnmpi -lscopmath -lsparse13 -lsundials -lIVhines -lreadline -lpython2.6 -o build/lib.linux-x86_64-2.6/neuron/hoc.so -Wl,-R/usr/local/nrn/x86_64/lib -Wl,-R/usr/local/iv/x86_64/lib
    running install_lib
    copying build/lib.linux-x86_64-2.6/neuron/hoc.so -> /usr/lib64/python2.6/site-packages/neuron
    running install_egg_info
    Removing /usr/lib64/python2.6/site-packages/NEURON-7.0-py2.6.egg-info
    Writing /usr/lib64/python2.6/site-packages/NEURON-7.0-py2.6.egg-info
This I do by python2 setup.py install

??

Thanks,
N.
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

Does it make a difference if you
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mpich2/lib

If the above does not fix the problem, then since
there have been quite a few bug fixes and mpi/python enhancements to NEURON since 7.0.
I would recommend upgrading to the latest mercurial repository version or the most recent
tar.gz at http://www.neuron.yale.edu/ftp/neuron/versions/alpha/

By the way, this has nothing to do with your problem but I was curious about the extra
configure options you used for mpi. Does --with-pm=smpd --with-pmi=smpd have a beneficial effect?
I've been quite happy with the nemesis device (which is now the default as you can see from the
mpi_version output).
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

No difference after updating LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH:

Code: Select all

/usr/local/nrn/x86_64/lib:/opt/mpich2/lib
import neuron from python:

Code: Select all

Python 2.6.5 (release26-maint, Aug 22 2010, 12:25:09) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import neuron
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/neuron/__init__.py", line 81, in <module>
    import neuron.hoc
ImportError: /usr/local/nrn/x86_64/lib/libsundials.so.0: undefined symbol: MPI_Allreduce
nrn-7.2 configure:

Code: Select all

./configure --prefix=`pwd` --with-nrnpython=/usr/bin/python2 --with-paranrn --with-mpi MPICC=/opt/mpich2/bin/mpicc MPICXX=/opt/mpich2/bin/mpicxx
But, as before, we can execute 'nrniv -mpi -python':

Code: Select all

numprocs=1
NEURON -- VERSION 7.2 (458:6f3a69e6667a) 2010-08-19
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2008
See http://www.neuron.yale.edu/credits.html
Why do we still getting ImportError: /usr/local/nrn/x86_64/lib/libsundials.so.0: undefined symbol: MPI_Allreduce?

ldd /usr/lib64/python2.6/site-packages/neuron/hoc.so

Code: Select all

...
libnrnmpi.so.0 => /usr/local/nrn/x86_64/lib/libnrnmpi.so.0 (0x00007f6ba3fd9000)
libsundials.so.0 => /usr/local/nrn/x86_64/lib/libsundials.so.0 (0x00007f9cbbb85000)
...
--with-pm=smpd --with-pmi=smpd I use for tight integration between mpich2 SGE(Sun Grid Engine), to avoid manual running of smpd and rings.
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

Let's take this to email <michael dot hines at yale dot edu > as it may involve an iterative process
and some useless guesses. Let's first determine if there are any obvious problems when building
sundials (my guess about the LD_LIBRARY_PATH assumed something was off with regard to
the RPATH during linkage). Anyway, in the nrn source directory do
cd src/sundials
make clean
make >& temp
#may need to be root for the following or sudo
make install >>& temp

and send me the temp file by email.
By the way, I assume it would not be possible to get a guest login on your machine?
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

This machine, for some reason, requires a configure option CC=mpicc
so that libtool is tickled into generating the shared object using the link command
mpicc -shared ...
instead of
gcc -shared ...

Note that the Makefile executes in either case, a libtool command of
/bin/sh ../../libtool --tag=CC --mode=link mpicc -g -O2 -o libsundials.la....
but it is not clear to me either why the tag changes the link command from mpicc
to gcc or why this is the first machine that caused a problem due to the replacement.
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

Thanks Hines, replacing gcc -shared... with mpicc -shared solved one problem, but then when doing

Code: Select all

python
from mpi4py import MPI
from neuron import h
I get segmentation fault, I couldn't know why, but replacing mpich2 with open mpi solved all issues!. Now all works together perfectly, python-2.6, neuron-7.2, mpi4py.

Best wishes,
N.
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

If I had to guess, I'd say that mpi4py must have been built with openmpi and therefore, NEURON must use that
as well.
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

Trying to install on other machines, but now getting

Code: Select all

ImportError: /usr/lib64/python2.6/site-packages/neuron/hoc.so: undefined symbol: _ZN3MPI3Win4FreeEv
Any hint?

Thanks,
N.
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

I haven't seen that before so I'm just guessing. First, the form of the symbol suggests a name mangled variable so it looks like a c++ symbol in
the MPI library. I'm surprised the hoc.so complains since I am not aware of any c++ MPI usage. I only use the c interface to MPI.
Secondly, I gather you are launching python and extending with NEURON ( I faintly infer it from the location of hoc.so). Can I assume there
is no problem if you launch nrniv with python embedded? I suspect either compiling different c++ libraries with different compilers or python and
NEURON were using different versions of MPI. One way to start diagnosing the problem is to start looking insided shared objects for the variable
_ZN3MPI3Win4FreeEv
The tools needed are 'ldd' that lists the libraries loaded by an executable or shared object, and 'strings' or 'nm' that list the names in a shared object.
More directly, which mpi does hoc.so need and which mpi does the library loaded by mpi4py need?
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

It's neuron-7.2 (alpha)

nrniv -python -mpi shows no errors:

Code: Select all

numprocs=1
NEURON -- VERSION 7.2 (458:6f3a69e6667a) 2010-08-19
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2008
See http://www.neuron.yale.edu/credits.html
but launching python and extending with NEURON

Code: Select all

Python 2.6.5 (release26-maint, Sep  7 2010, 09:21:34) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from mpi4py import MPI
>>> import neuron
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/neuron/__init__.py", line 81, in <module>
    import neuron.hoc
ImportError: /usr/lib64/python2.6/site-packages/neuron/hoc.so: undefined symbol: _ZN3MPI3Win4FreeEv
It's the same system you (still have login to).
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

http://www.neuron.yale.edu/hg/neuron/nr ... 27af59454a fixes the problem by avoiding
the include of mpi.h in the c++ file used to extend python with NEURON. This makes me
question whether your mpi is complete in regard to the c++ interface. But no matter. The work around
should be quite effective in general.
nizar
Posts: 22
Joined: Sat Oct 08, 2005 11:13 am
Location: localhost
Contact:

Re: import neuron MPI_Allreduce

Post by nizar »

hines wrote:http://www.neuron.yale.edu/hg/neuron/nr ... 27af59454a fixes the problem by avoiding
the include of mpi.h in the c++ file used to extend python with NEURON. This makes me
question whether your mpi is complete in regard to the c++ interface. But no matter. The work around
should be quite effective in general.
What do you mean if mpi is complete in regard to the c++ interface?

output of ompi_info

Code: Select all

Package: Open MPI root@calamari Distribution
                Open MPI: 1.4.2
   Open MPI SVN revision: r23093
   Open MPI release date: May 04, 2010
                Open RTE: 1.4.2
   Open RTE SVN revision: r23093
   Open RTE release date: May 04, 2010
                    OPAL: 1.4.2
       OPAL SVN revision: r23093
       OPAL release date: May 04, 2010
            Ident string: 1.4.2
                  Prefix: /usr
 Configured architecture: x86_64-pc-linux-gnu
          Configure host: calamari
           Configured by: root
           Configured on: Wed Sep 15 11:14:25 IST 2010
          Configure host: calamari
                Built by: 
                Built on: Wed Sep 15 11:21:17 IST 2010
              Built host: calamari
              C bindings: yes
            C++ bindings: yes
      Fortran77 bindings: yes (all)
      Fortran90 bindings: yes
 Fortran90 bindings size: small
              C compiler: x86_64-pc-linux-gnu-gcc
     C compiler absolute: /usr/bin/x86_64-pc-linux-gnu-gcc
            C++ compiler: x86_64-pc-linux-gnu-g++
   C++ compiler absolute: /usr/bin/x86_64-pc-linux-gnu-g++
      Fortran77 compiler: x86_64-pc-linux-gnu-gfortran
  Fortran77 compiler abs: /usr/bin/x86_64-pc-linux-gnu-gfortran
      Fortran90 compiler: x86_64-pc-linux-gnu-gfortran
  Fortran90 compiler abs: /usr/bin/x86_64-pc-linux-gnu-gfortran
             C profiling: yes
           C++ profiling: yes
     Fortran77 profiling: yes
     Fortran90 profiling: yes
          C++ exceptions: no
          Thread support: posix (mpi: no, progress: no)
           Sparse Groups: 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
         MPI I/O support: yes
       MPI_WTIME support: gettimeofday
Symbol visibility support: yes
   FT Checkpoint support: no  (checkpoint thread: no)
           MCA backtrace: execinfo (MCA v2.0, API v2.0, Component v1.4.2)
              MCA memory: ptmalloc2 (MCA v2.0, API v2.0, Component v1.4.2)
           MCA paffinity: linux (MCA v2.0, API v2.0, Component v1.4.2)
               MCA carto: auto_detect (MCA v2.0, API v2.0, Component v1.4.2)
               MCA carto: file (MCA v2.0, API v2.0, Component v1.4.2)
           MCA maffinity: first_use (MCA v2.0, API v2.0, Component v1.4.2)
               MCA timer: linux (MCA v2.0, API v2.0, Component v1.4.2)
         MCA installdirs: env (MCA v2.0, API v2.0, Component v1.4.2)
         MCA installdirs: config (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA dpm: orte (MCA v2.0, API v2.0, Component v1.4.2)
              MCA pubsub: orte (MCA v2.0, API v2.0, Component v1.4.2)
           MCA allocator: basic (MCA v2.0, API v2.0, Component v1.4.2)
           MCA allocator: bucket (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: basic (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: hierarch (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: inter (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: self (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: sm (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: sync (MCA v2.0, API v2.0, Component v1.4.2)
                MCA coll: tuned (MCA v2.0, API v2.0, Component v1.4.2)
               MCA mpool: fake (MCA v2.0, API v2.0, Component v1.4.2)
               MCA mpool: rdma (MCA v2.0, API v2.0, Component v1.4.2)
               MCA mpool: sm (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA pml: cm (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA pml: csum (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA pml: ob1 (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA pml: v (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA bml: r2 (MCA v2.0, API v2.0, Component v1.4.2)
              MCA rcache: vma (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA btl: self (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA btl: sm (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA btl: tcp (MCA v2.0, API v2.0, Component v1.4.2)
                MCA topo: unity (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA osc: pt2pt (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA osc: rdma (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA iof: hnp (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA iof: orted (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA iof: tool (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA oob: tcp (MCA v2.0, API v2.0, Component v1.4.2)
                MCA odls: default (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA ras: gridengine (MCA v2.0, API v2.0, Component v1.4.2)
               MCA rmaps: load_balance (MCA v2.0, API v2.0, Component v1.4.2)
               MCA rmaps: rank_file (MCA v2.0, API v2.0, Component v1.4.2)
               MCA rmaps: round_robin (MCA v2.0, API v2.0, Component v1.4.2)
               MCA rmaps: seq (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA rml: oob (MCA v2.0, API v2.0, Component v1.4.2)
              MCA routed: binomial (MCA v2.0, API v2.0, Component v1.4.2)
              MCA routed: direct (MCA v2.0, API v2.0, Component v1.4.2)
              MCA routed: linear (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA plm: rsh (MCA v2.0, API v2.0, Component v1.4.2)
               MCA filem: rsh (MCA v2.0, API v2.0, Component v1.4.2)
              MCA errmgr: default (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA ess: env (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA ess: hnp (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA ess: singleton (MCA v2.0, API v2.0, Component v1.4.2)
                 MCA ess: tool (MCA v2.0, API v2.0, Component v1.4.2)
             MCA grpcomm: bad (MCA v2.0, API v2.0, Component v1.4.2)
             MCA grpcomm: basic (MCA v2.0, API v2.0, Component v1.4.2)
Thanks for the help,
N
hines
Site Admin
Posts: 1687
Joined: Wed May 18, 2005 3:32 pm

Re: import neuron MPI_Allreduce

Post by hines »

When I looked for _ZN3MPI3Win4FreeEv in your /usr/lib/*mpi*.so and /usr/lib/openmpi/*.so
I could not find any mention of it. Also (the few) other people who have launched python and used mpi and neuron
have not mentioned this problem to me. I admit I have only worked around the problem by avoiding #include <mpi.h>
in a c++ file. I did not try very hard to allow that to work by means of linking against some other library by adding something
to setup.py and I would guess that would be an alternative fix.
Post Reply