NEURON 6.2 non-cygwin MPI

Post Reply
sl
Posts: 21
Joined: Wed Nov 28, 2007 12:52 am
Location: Cornell University

NEURON 6.2 non-cygwin MPI

Post by sl »

Hello, I am trying to compile NEURON 6.2 standard distribution with a non-cygwin version of MPI. I've used this MPI implementation for NEURON 6.1 so I know it works. Here is my configure command line:

Code: Select all

./configure --prefix=`pwd` --with-paranrn --with-mpi --with-multisend CPPFLAGS="-IC:/DeinoMPI/include" LDFLAGS="-LC:/DeinoMPI/lib -lmpi"
Also, to make it compile at all, I had to edit the mswin/nrncygso.sh so that the nrniv.exe and nrniv.dll build commands included this string '-LC:/DeinoMPI/lib -lmpi' (it complained about missing symbols without this modification).

However, when I copied the modified nrniv.exe and nrniv.dll over the stock ones, the MPI functionality refused to work.

EDIT:

When I run neuron like this, 'nrniv.exe -mpi para_test.hoc', I get this as the output:

Internal Error: invalid error code ffffffff (Ring Index out of range) in MPIDU_Sock_hostname_to_host_description:951

Any ideas why this could be happening?
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: NEURON 6.2 non-cygwin MPI

Post by ted »

Just in case you can't get it to compile, here's another possibility:
hines wrote:The current alpha setup.exe for mswin contains enough mpi to
work properly on a multicore desktop (and perhaps on
a cluster but I have not tested it). The launch process is
#start an rxvt terminal window using the NEURON group icon.
mpd& #once only per session
mpiexec -n <usually_the_number_of_cores> /cygdrive/c/nrn70/bin/nrniv
-mpi test0.hoc
#at the end of the session, the terminal window will not
#close after a ^D unless you first
mpdallexit
For a good test0.hoc see http://www.neuron.yale.edu/hg/neuron/nr ... /test0.hoc
hines
Site Admin
Posts: 1691
Joined: Wed May 18, 2005 3:32 pm

Re: NEURON 6.2 non-cygwin MPI

Post by hines »

Some old hints about building a mingw (non-cygwin) version for mpi are in
nrn/mswinmpiconf where the CFLAGS and CXXFLAGS are given a "-mwindows" arg.
Now, this may be out of date since I abandoned my home-brew loader for nrnmech.dll
in favor of standard windows dll's by introducing nrn/src/mswin/nrncygso.sh.in.
However, it seems to be there is a clear analogy now to building neuron as an
extension for native mswin Python. I see that for that case nrncygso.sh.in checks to
see if CFLAGS is "-mno-cygwin". So it seems to me that that is the path to take
nowadays in building a non-cygwin version.
hines
Site Admin
Posts: 1691
Joined: Wed May 18, 2005 3:32 pm

Re: NEURON 6.2 non-cygwin MPI

Post by hines »

Forgot to mention that I'd start by configuring with the option --disable-cygwin
and go from there.
sl
Posts: 21
Joined: Wed Nov 28, 2007 12:52 am
Location: Cornell University

Re: NEURON 6.2 non-cygwin MPI

Post by sl »

Turns out this was a Vista issue. I tested these compiled nrniv exe and dll and they worked fine on the cluster of XP machines. There were some interesting messages about 'dlopen' failing (which read, "dlopen failed - No such process") , which I'll have to investigate, but the MPI tests all came out to be positive.

I couldn't get the NEURON to build with the --disable-cygwin option at all, several components were missing headers (I assume my MinGW installation was at fault). In the end, the modifications to mswin/nrncygso.sh were sufficient.
Post Reply