Problems installing Neuron on a supercluster

Post Reply
JBall
Posts: 18
Joined: Tue Jun 15, 2010 8:47 pm

Problems installing Neuron on a supercluster

Post by JBall »

Hello,

I've been banging my head against this problem for a couple of days now, and I'm not sure how to proceed. Disclaimer: I'm very much a novice in this. I've been following the instructions for downloading and installing Neuron on a supercluster to which we just recently gained access. When trying to install Neuron, I've used:

./configure --prefix=`pwd` --with-paranrn --without-iv
make
make install

The output to the screen after the make is in the box below. After searching for the error messages I get ( final link failed: Nonrepresentable section on output; collect2: ld returned 1 exit status), I gather that something is wrong with the linker being used, but I don't know how to change this, or even if that is an appropriate solution. I apologize again for my ignorance here, but any help is very much appreciated.

Code: Select all

Making all in src
make[1]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src'
Making all in lib
make[2]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/lib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/lib'
Making all in include
make[2]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/include'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/include'
Making all in bin
make[2]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin'
Making all in iclass
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/iclass'
/bin/sh ../../../libtool --mode=link g++ -g -O2  -o iclass classbuffer.o classeditor.o classinfo.o dialogs.o direct.o globals.o iclass.o main.o ../../lib/libIVhines.la ../../lib/libUnidrawhines.la -L/usr/lib64 -lX11 -lXext -lm
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
g++ -g -O2 -o .libs/iclass classbuffer.o classeditor.o classinfo.o dialogs.o direct.o globals.o iclass.o main.o  ../../lib/.libs/libIVhines.so -L/usr/lib64 ../../lib/.libs/libUnidrawhines.so /pdc/vol/gcc/4.3.2/lib/../lib64/libstdc++.so -lX11 -lXext -lm  -Wl,--rpath -Wl,/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/x86_64/lib -Wl,--rpath -Wl,/pdc/vol/gcc/4.3.2/lib/../lib64
/usr/bin/ld: .libs/iclass: hidden symbol `__dso_handle' in /afs/pdc.kth.se/pdc/vol/gcc/4.3.2/@sys/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.2/crtbegin.o is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [iclass] Error 1
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/iclass'
Making all in idemo
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/idemo'
/bin/sh ../../../libtool --mode=link g++ -g -O2   -o idemo main.o ../../lib/libUnidrawhines.la ../../lib/libIVhines.la -L/usr/lib64 -lX11 -lXext  -lm
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
g++ -g -O2 -o .libs/idemo main.o  ../../lib/.libs/libUnidrawhines.so -L/usr/lib64 ../../lib/.libs/libIVhines.so /pdc/vol/gcc/4.3.2/lib/../lib64/libstdc++.so -lX11 -lXext -lm  -Wl,--rpath -Wl,/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/x86_64/lib -Wl,--rpath -Wl,/pdc/vol/gcc/4.3.2/lib/../lib64
/usr/bin/ld: .libs/idemo: hidden symbol `__dso_handle' in /afs/pdc.kth.se/pdc/vol/gcc/4.3.2/@sys/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.2/crtbegin.o is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [idemo] Error 1
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/idemo'
Making all in idraw
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/idraw'
/bin/sh ../../../libtool --mode=link g++ -g -O2  -o idraw idarrow.o idarrowhead.o idarrows.o idcatalog.o idcmds.o idcomp.o idcreator.o iddialogs.o ided.o idkybd.o idvars.o main.o ../../lib/libUnidrawhines.la ../../lib/libIVhines.la -L/usr/lib64 -lX11 -lXext  -lm
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
g++ -g -O2 -o .libs/idraw idarrow.o idarrowhead.o idarrows.o idcatalog.o idcmds.o idcomp.o idcreator.o iddialogs.o ided.o idkybd.o idvars.o main.o  ../../lib/.libs/libUnidrawhines.so -L/usr/lib64 ../../lib/.libs/libIVhines.so /pdc/vol/gcc/4.3.2/lib/../lib64/libstdc++.so -lX11 -lXext -lm  -Wl,--rpath -Wl,/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/x86_64/lib -Wl,--rpath -Wl,/pdc/vol/gcc/4.3.2/lib/../lib64
/usr/bin/ld: .libs/idraw: hidden symbol `__dso_handle' in /afs/pdc.kth.se/pdc/vol/gcc/4.3.2/@sys/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.3.2/crtbegin.o is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [idraw] Error 1
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin/idraw'
make[2]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src/bin'
make[1]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/iv/src'
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Problems installing Neuron on a supercluster

Post by hines »

The major problem I see is that your configure line is meant for NEURON but you
are doing the make in the iv directory (InterViews). You should discard iv entirely.

Now it turns out that I have a been working at building NEURON on Lindgren,
a Cray XE6 system, at the PDC center at KTH. If that is the system you are
using then you ought to piggyback off my efforts which just today became
successful. If that is the case then there are a half-dozen details that you will
need to know, especially if you wish to also use Python which requires a shared
library build. If you are not interested in python, then the simplest build is a static build and you
will need the --disable-shared configure option. Also, note that a program installed
under $HOME cannot
be run on the backnodes as that is not mounted. There are also a lot of details that make the
qsub script unusual. Of course, if you are not using Lindgren but one of the other resources,
then other details and issues may apply.
JBall
Posts: 18
Joined: Tue Jun 15, 2010 8:47 pm

Re: Problems installing Neuron on a supercluster

Post by JBall »

...yes, using the wrong directory would be an issue. I've had issues with iv as well as Neuron, and while I have mostly given up on iv, I seem to have pasted the wrong make output here. I've pasted the results for the make of Neuron below.

Also, I am trying to install Neuron on Ferlin and not Lindgren, but I very much hope that your experience could help me out. Right now we will probably not use Python, but we might choose to do so in the future.

Edit: Also, where should it be installed if the directory I show below will not work?


Code: Select all

make  all-recursive
make[1]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn'
Making all in src
make[2]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src'
Making all in memacs
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/memacs'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/memacs'
Making all in e_editor
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/e_editor'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/e_editor'
Making all in modlunit
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/modlunit'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/modlunit'
Making all in nmodl
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nmodl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nmodl'
Making all in sparse
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/sparse'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/sparse'
Making all in sparse13
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/sparse13'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/sparse13'
Making all in scopmath
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/scopmath'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/scopmath'
Making all in nrnmpi
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnmpi'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnmpi'
Making all in oc
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/oc'
make  all-am
make[4]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/oc'
make[4]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/oc'
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/oc'
Making all in nrnoc
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnoc'
if test -d ../../.hg ; then \
                sh ../../hg2nrnversion_h.sh ../.. > ./nrnversion.h.tmp ; \
                if cmp ./nrnversion.h.tmp ./nrnversion.h ; then \
                        echo "nrnversion.h not changed" ; \
                        rm ./nrnversion.h.tmp ; \
                else \
                        mv ./nrnversion.h.tmp ./nrnversion.h ; \
                        echo "updated nrnversion.h" ; \
                fi \
        else \
        if test -d ../../.svn && svnversion ../.. ; then \
        if test "`svnversion ../..`" != "`sed -n 's/.*SVN_CHANGESET.*(\([^)]*\).*/\1/p' ./nrnversion.h`" ; then \
            sh ../../svn2nrn_h.sh ../.. > ./nrnversion.h.tmp; \
            if test -s ./nrnversion.h.tmp ; then \
                mv ./nrnversion.h.tmp ./nrnversion.h ; \
            fi ; \
            echo "updated nrnversion.h" ; \
        else \
                echo "nrnversion.h not changed" ; \
        fi \
        fi \
        fi
make  all-am
make[4]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnoc'
if test -d ../../.hg ; then \
                sh ../../hg2nrnversion_h.sh ../.. > ./nrnversion.h.tmp ; \
                if cmp ./nrnversion.h.tmp ./nrnversion.h ; then \
                        echo "nrnversion.h not changed" ; \
                        rm ./nrnversion.h.tmp ; \
                else \
                        mv ./nrnversion.h.tmp ./nrnversion.h ; \
                        echo "updated nrnversion.h" ; \
                fi \
        else \
        if test -d ../../.svn && svnversion ../.. ; then \
        if test "`svnversion ../..`" != "`sed -n 's/.*SVN_CHANGESET.*(\([^)]*\).*/\1/p' ./nrnversion.h`" ; then \
            sh ../../svn2nrn_h.sh ../.. > ./nrnversion.h.tmp; \
            if test -s ./nrnversion.h.tmp ; then \
                mv ./nrnversion.h.tmp ./nrnversion.h ; \
            fi ; \
            echo "updated nrnversion.h" ; \
        else \
                echo "nrnversion.h not changed" ; \
        fi \
        fi \
        fi
if /bin/sh ../../libtool --tag=CC --mode=compile mpicc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../.. -I. -I../../src/oc -I../../src/oc -I../../src/oc -I../../src/parallel -I../../src/nrnjava -I../../src/nrncvode -I../../src/ivos -I../../src/sundials -I../../src/nrnpython -I../../src/oc -I../../src/oc -I../../src/scopmath -I../../src/sparse13 -DCABLE=1 -DOOP=1   -g -O2 -MT nrnversion.lo -MD -MP -MF ".deps/nrnversion.Tpo" -c -o nrnversion.lo nrnversion.c; \
        then mv -f ".deps/nrnversion.Tpo" ".deps/nrnversion.Plo"; else rm -f ".deps/nrnversion.Tpo"; exit 1; fi
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
 mpicc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../.. -I. -I../../src/oc -I../../src/oc -I../../src/oc -I../../src/parallel -I../../src/nrnjava -I../../src/nrncvode -I../../src/ivos -I../../src/sundials -I../../src/nrnpython -I../../src/oc -I../../src/oc -I../../src/scopmath -I../../src/sparse13 -DCABLE=1 -DOOP=1 -g -O2 -MT nrnversion.lo -MD -MP -MF .deps/nrnversion.Tpo -c nrnversion.c  -fPIC -DPIC -o .libs/nrnversion.o
/bin/sh ../../libtool --tag=CC --mode=link mpicc  -g -O2   -o libnrnoc.la -rpath /afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/x86_64/lib  cabcode.lo capac.lo clamp.lo eion.lo extcelln.lo fadvance.lo fstim.lo hh.lo feature.lo init.lo nrnnemo.lo passive.lo passive0.lo point.lo psection.lo solve.lo synapse.lo treeset.lo hoc_init.lo code.lo hoc_oop.lo stim.lo syn.lo vclmp.lo seclist.lo method3.lo apcount.lo hocprax.lo svclmp.lo oclmp.lo xmech.lo secref.lo ldifus.lo hocusr.lo nrnversion.lo netstim.lo intfire1.lo intfire2.lo intfire4.lo expsyn.lo exp2syn.lo ppmark.lo pattern.lo nrntimeout.lo  -lm -ldl
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
rm -fr  .libs/libnrnoc.la .libs/libnrnoc.lai .libs/libnrnoc.so .libs/libnrnoc.so.0 .libs/libnrnoc.so.0.0.0
gcc -shared  .libs/cabcode.o .libs/capac.o .libs/clamp.o .libs/eion.o .libs/extcelln.o .libs/fadvance.o .libs/fstim.o .libs/hh.o .libs/feature.o .libs/init.o .libs/nrnnemo.o .libs/passive.o .libs/passive0.o .libs/point.o .libs/psection.o .libs/solve.o .libs/synapse.o .libs/treeset.o .libs/hoc_init.o .libs/code.o .libs/hoc_oop.o .libs/stim.o .libs/syn.o .libs/vclmp.o .libs/seclist.o .libs/method3.o .libs/apcount.o .libs/hocprax.o .libs/svclmp.o .libs/oclmp.o .libs/xmech.o .libs/secref.o .libs/ldifus.o .libs/hocusr.o .libs/nrnversion.o .libs/netstim.o .libs/intfire1.o .libs/intfire2.o .libs/intfire4.o .libs/expsyn.o .libs/exp2syn.o .libs/ppmark.o .libs/pattern.o .libs/nrntimeout.o  -lm -ldl  -Wl,-soname -Wl,libnrnoc.so.0 -o .libs/libnrnoc.so.0.0.0
(cd .libs && rm -f libnrnoc.so.0 && ln -s libnrnoc.so.0.0.0 libnrnoc.so.0)
(cd .libs && rm -f libnrnoc.so && ln -s libnrnoc.so.0.0.0 libnrnoc.so)
creating libnrnoc.la
(cd .libs && rm -f libnrnoc.la && ln -s ../libnrnoc.la libnrnoc.la)
/bin/sh ../../libtool --tag=CC --mode=link mpicc  -g -O2   -o nrnoc  ocmain.o nrnnoiv.o ocnoiv.o cprop.o ../oc/modlreg.o libnrnoc.la ../oc/liboc.la ../memacs/libmemacs.la ../scopmath/libscopmath.la ../sparse13/libsparse13.la ../nrnmpi/libnrnmpi.la -lreadline -lncurses  -lm -ldl
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
mpicc -g -O2 -o .libs/nrnoc ocmain.o nrnnoiv.o ocnoiv.o cprop.o ../oc/modlreg.o  ./.libs/libnrnoc.so ../oc/.libs/liboc.so -L/usr/lib64 -lX11 ../memacs/.libs/libmemacs.so ../scopmath/.libs/libscopmath.so ../sparse13/.libs/libsparse13.so ../nrnmpi/.libs/libnrnmpi.so -lreadline -lncurses -lm -ldl  -Wl,--rpath -Wl,/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/x86_64/lib
/pdc/vol/i-compilers/11.1/icc/lib/intel64/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
creating nrnoc
make[4]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnoc'
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/nrnoc'
Making all in ivos
make[3]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
make  all-recursive
make[4]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
Making all in InterViews
make[5]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos/InterViews'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos/InterViews'
Making all in OS
make[5]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos/OS'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos/OS'
make[5]: Entering directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
if /bin/sh ../../libtool --tag=CXX --mode=compile mpic++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../.. -I../../src/nrnoc -I../../src/oc -I../../src/oc -I../../src/oc -I../../src/parallel -I../../src/nrnjava -I../../src/nrncvode -I. -I../../src/sundials -I../../src/nrnpython     -g -O2 -MT listimpl.lo -MD -MP -MF ".deps/listimpl.Tpo" -c -o listimpl.lo listimpl.cpp; \
        then mv -f ".deps/listimpl.Tpo" ".deps/listimpl.Plo"; else rm -f ".deps/listimpl.Tpo"; exit 1; fi
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
 mpic++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../.. -I../../src/nrnoc -I../../src/oc -I../../src/oc -I../../src/oc -I../../src/parallel -I../../src/nrnjava -I../../src/nrncvode -I. -I../../src/sundials -I../../src/nrnpython -g -O2 -MT listimpl.lo -MD -MP -MF .deps/listimpl.Tpo -c listimpl.cpp  -fPIC -DPIC -o .libs/listimpl.o
/bin/sh ../../libtool --tag=CXX --mode=link mpic++  -g -O2   -o libivos.la -rpath /afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/x86_64/lib  file.lo listimpl.lo math.lo memory.lo string.lo ustring.lo observe.lo regexp.lo resource.lo  -lm -ldl
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
/bin/sed: -e expression #1, char 88: unknown option to `s'
g++ -shared -nostdlib   .libs/file.o .libs/listimpl.o .libs/math.o .libs/memory.o .libs/string.o .libs/ustring.o .libs/observe.o .libs/regexp.o .libs/resource.o  -Wl,--rpath -Wl,/pdc/vol/gcc/4.3.2/lib/../lib64 -Wl,--rpath -Wl,/pdc/vol/gcc/4.3.2/lib/../lib64 -ldl /pdc/vol/gcc/4.3.2/lib/../lib64/libstdc++.so -lm -lc -lgcc_s   -Wl,-soname -Wl,libivos.so.0 -o .libs/libivos.so.0.0.0
.libs/file.o: In function `__sti__$E':
/usr/include/c++/4.1.2/iostream:65536: undefined reference to `__dso_handle'
/usr/bin/ld: .libs/file.o: relocation R_X86_64_PC32 against `__dso_handle' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
make[5]: *** [libivos.la] Error 1
make[5]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src/ivos'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/afs/pdc.kth.se/home/f/fearpro/Neuron/nrn'
make: *** [all] Error 2
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Problems installing Neuron on a supercluster

Post by hines »

On a supercomputer or cluster, the 0th step is to give up on iv. Almost always you want to run in batch mode anyway
and presently the -mpi arg turns off the gui.

I looked at http://www.pdc.kth.se/resources/compute ... ferlin-run
and it is very confusing so you may need to experiment a bit but the generic
way to build a static version is as follows. I have no idea if ferlin can run programs under
$HOME. Probably. However it was never mentioned for Lindgren and one cannot.
Try and see if it works. I've had to ask for help from support@pdc.kth.se a half dozen times
and they have alwasy been able to quickly answer my question.

1) start with a fresh $HOME/neuron/nrn directory in which you have NOT tried to build.
2) you will want to build and install in an object directory.
cd $HOME/neuron
mkdir nrnmpi
cd nrnmpi
3) build the programs that are supposed to run on the login node.
../nrn/configure --prefix=`pwd` --without-x --with-nmodl-only CC=gcc CXX=g++
make
make install

4) build the static libraries (and a useless executable)
#I have no idea if the following statements are needed but I see them in the above link
# the main idea is to use the compilers and mpicc that actually work for the backend nodes.
module add i-compilers mpi easy
spattach -i -p3
# in the following configure, it is often necessary to specify CC, CXX, MPICC, and MPICXX
../nrn/configure --prefix=`pwd` --without-x --with-paranrn --without-nmodl \
--disable-shared linux_nrnmech=no
make
make install

The above install will creates some kind of folder, maybe i686 or perhaps x86_64, or
some other name. Check i686/bin/nrniv and make sure it is a large file (static builds are
often > 15 MB) instead of small (dynamic library builds are normally < 1M).

5) Add $HOME/neuron/nrnmpi/i686/bin to your PATH

6) build a test via
cd $HOME
mkdir test
cd test
cp $HOME/neuron/nrn/parallel/test0.hoc .
echo "NEURON {SUFFIX nothing}" > foo.mod
nrnivmodl
#check that i686/special exists and is a large file. That is the executable
Now you are on your own. See the link above for the launch methods for
Running an MPI program on dedicated nodes.
Your script will contain the line
mpirun -np $SP_PROCS -machinefile $SP_HOSTFILE ./i686/special -mpi test0.hoc
and if a run is successful you will get an output file with a bunch of lines of the form
I am x of y

Good luck.
JBall
Posts: 18
Joined: Tue Jun 15, 2010 8:47 pm

Re: Problems installing Neuron on a supercluster

Post by JBall »

Ok, wow!

Your instructions have been immensely helpful so far. Neuron has been successfully installed and I can run nrniv on single nodes as well as run mpi jobs on an interactive node (I'm still figuring out the "esubmit" procedure, but I will talk to ferlin support for that). One issue I do have, however, is that when I do an mpirun from an interactive node, I get the message:

Code: Select all

 a07c01n08.pdc.kth.se:13410 2 more processes have sent help message help-mpi-btl-base.txt / btl:no-nics
a07c01n08.pdc.kth.se:13410 Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
Any idea what this could be?

For archival purposes for anyone in the future looking at this (i.e. to prevent confusion my lab mates who will probably look at this at some point), I had to change a couple of minor things:

the folder i686 became x86_64 (because of different architecture)

spattach -i -p3 logs in to an interactive node with 3 available cpus. Not sure that this is necessary for installation; it seems like I should be able to also do this with -p1?

I did not need to specify CC, CXX, etc. during the second configure of Neuron for the remote nodes (I hope this doesn't cause problems later).

Not a big deal, but test0.hoc was found in $HOME/Neuron/nrn/src/parallel/
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Problems installing Neuron on a supercluster

Post by hines »

I'm delighted that the build is working for you on that machine.
Any idea what this could be?
I have absolutely no idea. WIll need to ask support.
Sounds like spatttach is not necessary. Only two ways to find out: 1) to try building without it.
2) understand what it is doing in detail.

Ted has my permission to update my previous post if he thinks it is worth the effort.
JBall
Posts: 18
Joined: Tue Jun 15, 2010 8:47 pm

Re: Problems installing Neuron on a supercluster

Post by JBall »

I need to contact Ferlin support anyway for a couple of Ferlin-related things, so I'll ask about that error message. I suspect it's related to abnormal termination of the job after the script runs.

You and Ted continue to astound me with how thoroughly you maintain and support Neuron. Thanks again for all of your help.
JBall
Posts: 18
Joined: Tue Jun 15, 2010 8:47 pm

Re: Problems installing Neuron on a supercluster

Post by JBall »

Alright, I'm having an issue that I have asked Ferlin support about, but I'm going to post it here in case you know something:

When I do an mpirun on an interactive node (say, using spattach -i -p3), a fair amount of the time, I get a message like this:

rsh: connect(a11c11n13 [193.11.170.105]): No route to host

followed by:

A daemon (pid 26113) died unexpectedly with status 255 while attempting
to launch so we are aborting.

There may be more information reported by the environment (see above).

This may be because the daemon was unable to find all the needed shared
libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
location of the shared libraries on the remote nodes and this will
automatically be forwarded to the remote nodes.

Also, when I try to "esubmit" a job (their batch submission script), neither Neuron scripts nor their example fortran programs will run. Is it possible that when we configure neuron after using spattach -i -p3, only those hosts on which I was logged in received the Neuron installation?
rth
Posts: 41
Joined: Thu Jun 21, 2012 4:47 pm

Re: Problems installing Neuron on a supercluster

Post by rth »

What if I need python?
hines
Site Admin
Posts: 1682
Joined: Wed May 18, 2005 3:32 pm

Re: Problems installing Neuron on a supercluster

Post by hines »

Ideally, it is sufficient to use the configure options
--with-nrnpython --disable-pysetup
The latter prevents the execution of setup.py at the end of 'make install' which would likely fail in the supercomputer environment.

Unfortunately, if this environment requires cross compilation, then it may not make sense for configure to figure out the various python compile time flags by experimenting with the
login node version of python since those may not be the proper compile time flags for the supercomputer compute nodes. So if this part of configure fails, it is necessary to determine
them yourself and specify the proper values for
PYLIB=$PYLIB
PYLIBDIR=$PYLIBDIR
PYLIBLINK=$PYLIBLINK
PYINCDIR=$PYINCDIR

For example, at least on one Blue Gene/Q I need

Code: Select all

MYPY=/gpfs/bbp.cscs.ch/apps/bgq/external/python/python-2.6.7/install/python2.6.7-20131119

../nrn/configure ...
  PYINCDIR=$MYPY/include/python2.6 \
  PYLIB="-L$MYPY/lib64 -lpython2.6" \
  PYLIBDIR="$MYPY/lib64" \
  PYLIBLINK="-L$MYPY/lib64 -lpython2.6" \
  --host=powerpc64-unknown-linux-gnu \
...
rth
Posts: 41
Joined: Thu Jun 21, 2012 4:47 pm

Re: Problems installing Neuron on a supercluster

Post by rth »

Thank you! I'll try to play with it or work around.
Post Reply