cannot find libnrnmech.so

Post Reply
ttpuff

cannot find libnrnmech.so

Post by ttpuff »

it said:
Successfully created x86_64/special

but I cannot run

x86_64/special

here is an error:

loading membrane mechanisms from /u/home3/liujk/neuron/nrn/share/nrn/demo/release/x86_64/.libs/libnrnmech.so
dlopen failed -
/u/home3/liujk/neuron/nrn/share/nrn/demo/release/x86_64/.libs/libnrnmech.so: cannot open shared object file: No such file or directory

I get into /x86_64/.libs/, no libnrnmech.so at all. Anything wrong? Thanks.
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Post by hines »

it said:
What said? neurondemo?
Or nrnivmodl?
How did you install? From tar.gz sources or from an rpm?
If the latter, which rpm did you use?
What is the result on your machine of:
uname -a
g++ -v
I get into /x86_64/.libs/
You have x86_64 in your root directory?
ttpuff

Post by ttpuff »

Sorry for confusion.

I try to install NEURON under my user account in the cluster. So I am just a regular user. I follow the steps as in the post:
how to run NEURON in supercomputer

I follow the steps in
NRNIV only (no GUI)

tar xzf nrn-nn.tar.gz
# renaming the new directory to nrn makes life simpler later on
mv nrn-n.n nrn
cd nrn
./configure --prefix=`pwd` --without-iv
make
make install

all above steps are OK. Then I test

3. Test NEURON by running its "demonstration" program.

./config.guess #your hostcpu is printed in the form hostcpu-vendor-osversion
cd share/nrn/demo/release
# for this concrete example, we assume hostcpu is i686
$HOME/neuron/nrn/i686/bin/nrnivmodl
~~~~~~~~~~~~~~~~~~ it's OK, it said:
Successfully created x86_64/special.

there are some warnings, I assume they are OK. Then I run:

x86_64/special

I got the error:
loading membrane mechanisms from /u/home3/liujk/neuron/nrn/share/nrn/demo/release/x86_64/.libs/libnrnmech.so
dlopen failed -
/u/home3/liujk/neuron/nrn/share/nrn/demo/release/x86_64/.libs/libnrnmech.so: cannot open shared object file: No such file or directory


I get into x86_64/.libs/, not the root directory, no libnrnmech.so at all.

here are some results, I am not the superuser.

uname -a
Linux login1 2.6.18-8.el5 #1 SMP Thu Mar 15 19:46:53 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux


g++ -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)


any suggestions?



hines wrote:
it said:
What said? neurondemo?
Or nrnivmodl?
How did you install? From tar.gz sources or from an rpm?
If the latter, which rpm did you use?
What is the result on your machine of:
uname -a
g++ -v
I get into /x86_64/.libs/
You have x86_64 in your root directory?
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Post by hines »

I try to install NEURON under my user account in the cluster
...
./configure --prefix=`pwd` --without-iv
Since it is a cluster, I presume you will want to run parallel programs.
In that case you would need to be explicit about using mpi.

Code: Select all

./configure --prefix=`pwd` --without-iv --with-paranrn
and you should consult
http://www.neuron.yale.edu/ftp/ted/neur ... _press.pdf
But that is for later and has nothing to do with your present problem.
$HOME/neuron/nrn/i686/bin/nrnivmodl
~~~~~~~~~~~~~~~~~~ it's OK, it said:
Successfully created x86_64/special.
I doubt there is anything wrong with your installation of NEURON but
the test instructions need to be worked on.
I need to know the exact nrnivmodl command you typed and the working
directory you typed it in. Also send all the output resulting from the
command. It is best to do this by email to michael.hines@yale.edu.
(The thing that is wrong with the test instructions is that they could
interfere with a subsequent "neurondemo" command)
ttpuff

Post by ttpuff »

yes, I did. like this:

Code: Select all

./configure --prefix=`pwd` --without-iv --disable-shared --with-paranrn
make
make install
cd share/nrn/demo/release
/u/home3/liujk/neuron/nrn/x86_64/bin/nrnivmodl 

login1:~/neuron/nrn/share/nrn/demo/release {512}$ 
/u/home3/liujk/neuron/nrn/x86_64/bin/nrnivmodl 

when I run the parallel test code, I found

Code: Select all

login1:~/neuron/nrn/src/parallel {501}$ mpiexec -np 4 $HOME/neuron/nrn/x86_64/bin/nrniv -mpi test0.hoc
--------------------------------------------------------------------------
[0,1,0]: OpenIB on host login1 was unable to find any HCAs.
Another transport will be used instead, although this may result in 
lower performance.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[0,1,1]: OpenIB on host login1 was unable to find any HCAs.
Another transport will be used instead, although this may result in 
lower performance.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[0,1,3]: OpenIB on host login1 was unable to find any HCAs.
Another transport will be used instead, although this may result in 
lower performance.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[0,1,2]: OpenIB on host login1 was unable to find any HCAs.
Another transport will be used instead, although this may result in 
lower performance.
--------------------------------------------------------------------------
numprocs=4
NEURON -- Release 6.1.2 (1927) 2007-12-30
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2007
See http://www.neuron.yale.edu/credits.html

There are 4 processes. My rank is 1 and I am on login1
There are 4 processes. My rank is 0 and I am on login1
There are 4 processes. My rank is 2 and I am on login1
There are 4 processes. My rank is 3 and I am on login1


any wrong? thanks. I send you a detail list.


hines wrote: Since it is a cluster, I presume you will want to run parallel programs.
In that case you would need to be explicit about using mpi.

Code: Select all

./configure --prefix=`pwd` --without-iv --with-paranrn
and you should consult
http://www.neuron.yale.edu/ftp/ted/neur ... _press.pdf
But that is for later and has nothing to do with your present problem.

I doubt there is anything wrong with your installation of NEURON but
the test instructions need to be worked on.
I need to know the exact nrnivmodl command you typed and the working
directory you typed it in. Also send all the output resulting from the
command. It is best to do this by email to michael.hines@yale.edu.
(The thing that is wrong with the test instructions is that they could
interfere with a subsequent "neurondemo" command)
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Post by hines »

Code: Select all

./configure --prefix=`pwd` --without-iv --disable-shared --with-paranrn
--disable-shared is the problem. Since it also causes static linking of the nrnmech
library from nrnivmodl, that is why the dlopen fails. I recommend one more configure
option: linux_nrnmech=no
Note there is no '--' for that option.
Where did you find out about what configure line you should use. I need to read
that document and see if the instructions can be improved.
ttpuff

Post by ttpuff »

I found it here:
https://www.neuron.yale.edu/phpBB2/viewtopic.php?t=1171
I try to follow steps there, but something is wrong.

Code: Select all

../nrn/configure --prefix=`pwd` \
'--srcdir=../nrn' '--without-x' '--without-memacs' '--without-readline'\
'--disable-shared' '--with-paranrn' '--without-nmodl' \
CC=cc CXX=CC MPICC=cc MPICXX=CC linux_nrnmech=no \
java_dlopen=no \
am_cv_CC_dependencies_compiler_type=dashmstdout \
am_cv_CXX_dependencies_compiler_type=dashmstdout \
--host=x86_64-unknown-linux-gnu

===
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for x86_64-unknown-linux-gnu-strip... no
checking for strip... strip
checking build system type... x86_64-redhat-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for style of include used by make... GNU
checking for x86_64-unknown-linux-gnu-g++... CC
checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables
See `config.log' for more details.

 
So I take minimum steps.


OK. it works by using

Code: Select all

./configure --prefix=`pwd` --without-iv --disable-shared --with-paranrn  linux_nrnmech=no
 
now I have

Code: Select all

/u/home3/liujk/neuron/nrn/x86_64/bin/nrnivmodl 
x86_64/special 

NEURON -- Release 6.1.2 (1927) 2007-12-30
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2007
See http://www.neuron.yale.edu/credits.html

Additional mechanisms from files
 cabpump.mod cachan1.mod camchan.mod capump.mod invlfire.mod khhchan.mod mcna.mod nacaex.mod nachan.mod release.mod
oc>
 
mod files are loaded. it's good. But when I run the sample code

Code: Select all

login1:~/neuron/nrn/share/demo {593}$ /u/home3/liujk/neuron/nrn/x86_64/bin/nrniv release.hoc 

NEURON -- Release 6.1.2 (1927) 2007-12-30
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2007
See http://www.neuron.yale.edu/credits.html

/u/home3/liujk/neuron/nrn/x86_64/bin/nrniv: syntax error
 in release.hoc near line 13
 {insert HHna  insert HHk  insert cachan  insert cadifpmp }
                ^
 
'insert' doesn't work. I also try to run my code, same thing. Did I still miss something. Thanks


hines wrote:

Code: Select all

./configure --prefix=`pwd` --without-iv --disable-shared --with-paranrn
--disable-shared is the problem. Since it also causes static linking of the nrnmech
library from nrnivmodl, that is why the dlopen fails. I recommend one more configure
option: linux_nrnmech=no
Note there is no '--' for that option.
Where did you find out about what configure line you should use. I need to read
that document and see if the instructions can be improved.
hines
Site Admin
Posts: 1600
Joined: Wed May 18, 2005 3:32 pm

Post by hines »

Code: Select all

/u/home3/liujk/neuron/nrn/x86_64/bin/nrniv release.hoc 
Because the special is statically linked, you need to run that directly.

Code: Select all

x86_64/special release.hoc
The "special" is no longer a shell script but the full executable containing all the
neuron librarires, main function, and all the linked mod files.
ttpuff

Post by ttpuff »

thanks, that works. I'm using something like

Code: Select all

 nrngui release.hoc
in my desktop. Never use the command like this. Good to know. Thanks a lot, now I can use our cluster to run NEURON.

hines wrote:

Code: Select all

/u/home3/liujk/neuron/nrn/x86_64/bin/nrniv release.hoc 
Because the special is statically linked, you need to run that directly.

Code: Select all

x86_64/special release.hoc
The "special" is no longer a shell script but the full executable containing all the
neuron librarires, main function, and all the linked mod files.
Post Reply