Compilation issue on a Cray XE6

General issues of interest both for network and
individual cell parallelization.

Moderator: hines

Post Reply
biswa
Posts: 11
Joined: Tue Jun 07, 2005 4:29 pm

Compilation issue on a Cray XE6

Post by biswa »

I have been trying to install Neuron 7.3 on our Cray XE6. Are there any specific make rules that needs to be followed to get a working NEURON installation?

I have even tried to follow the instructions by Michael in http://www.neuron.yale.edu/phpBB/viewto ... cray#p8800, with no success. The specific error that I get is:

Code: Select all

./nrnmpi/.libs/libnrnmpi.a ../memacs/.libs/libmemacs.a -lreadline -lncurses -lm -ldl
/usr/lib/../lib64/libreadline.a(complete.o): In function `rl_username_completion_function':
/usr/src/packages/BUILD/readline-5.2/complete.c:1856: warning: Using 'getpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/../lib64/libreadline.a(tilde.o): In function `tilde_expand_word':
/usr/src/packages/BUILD/readline-5.2/./tilde.c:390: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/../lib64/libreadline.a(shell.o): In function `sh_get_home_dir':
/usr/src/packages/BUILD/readline-5.2/shell.c:167: warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/../lib64/libreadline.a(complete.o): In function `rl_username_completion_function':
/usr/src/packages/BUILD/readline-5.2/complete.c:1852: warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/src/packages/BUILD/readline-5.2/complete.c:1867: warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
cd ../.. && /bin/sh ./config.status src/oc/nrnpthread.h
config.status: creating src/oc/nrnpthread.h
config.status: src/oc/nrnpthread.h is unchanged
make[4]: Leaving directory `/biswa/neuron73/nrn-7.3/src/oc'
make[3]: Leaving directory `/biswa/neuron73/nrn-7.3/src/oc'
Making all in nrnoc
make[3]: Entering directory `/biswa/neuron73/nrn-7.3/src/nrnoc'
(MODLUNIT=../../share/lib/nrnunits.lib ; \
		export MODLUNIT ; ../nmodl/nocmodl ./feature )
Translating ./feature.mod into ./feature.c
Notice: VERBATIM blocks are not thread safe
/bin/sh: line 1:  4041 Illegal instruction     ../nmodl/nocmodl ./feature
make[3]: *** [feature.c] Error 132
make[3]: Leaving directory `/biswa/neuron73/nrn-7.3/src/nrnoc'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/biswa/neuron73/nrn-7.3/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/biswa/neuron73/nrn-7.3'
make: *** [all] Error 2
This is after I invoke

Code: Select all

./configure --prefix=`pwd` --without-x --with-paranrn --without-nmodl --disable-shared linux_nrnmech=no  CC=cc CXX=CC
The modules loaded include:

Code: Select all

  1) modules/3.2.6.6
  2) nodestat/2.2-1.0400.31264.2.5.gem
  3) sdb/1.0-1.0400.32124.7.19.gem
  4) MySQL/5.0.64-1.0000.5053.22.1
  5) lustre-cray_gem_s/1.8.6_2.6.32.45_0.3.2_1.0400.6453.5.1-1.0400.32127.1.90
  6) udreg/2.3.1-1.0400.4264.3.1.gem
  7) ugni/2.3-1.0400.4374.4.88.gem
  8) gni-headers/2.1-1.0400.4351.3.1.gem
  9) dmapp/3.2.1-1.0400.4255.2.159.gem
 10) xpmem/0.1-2.0400.31280.3.1.gem
 11) hss-llm/6.0.0
 12) Base-opts/1.0.2-1.0400.31284.2.2.gem
 13) xtpe-network-gemini
 14) PrgEnv-gnu/4.0.46
 15) atp/1.4.3
 16) xt-asyncpe/5.09
 17) pmi/3.0.1-1.0000.9101.2.26.gem
 18) xt-libsci/11.0.06
 19) xt-totalview/8.9.2
 20) totalview-support/1.1.2
 21) gcc/4.6.3
 22) pbs/10.2.2.113537
 23) packages-phase3
 24) bolt/0.5
 25) budgets/1.0
 26) xtpe-interlagos
 27) xt-mpich2/5.4.5
I should add that using:

Code: Select all

./configure --prefix=`pwd` --without-iv --with-paranrn --disable-shared CC=cc CXX=CC
fails with:

Code: Select all

make[3]: Entering directory `/biswa/neuron73/nrn-7.3/src/nrnoc'
(MODLUNIT=../../share/lib/nrnunits.lib ; \
		export MODLUNIT ; ../nmodl/nocmodl ./hh )
Translating ./hh.mod into ./hh.c
/bin/sh: line 1: 28910 Illegal instruction     ../nmodl/nocmodl ./hh
make[3]: *** [hh.c] Error 132
make[3]: Leaving directory `/biswa/neuron73/nrn-7.3/src/nrnoc'
hines
Site Admin
Posts: 1692
Joined: Wed May 18, 2005 3:32 pm

Re: Compilation issue on a Cray XE6

Post by hines »

/bin/sh: line 1: 4041 Illegal instruction ../nmodl/nocmodl ./feature
This problem means you did not successfully complete step 3 of my topic reply you referenced.
That is nocmodl was not created with the --with-nmodl-only configure;make;make install step.
Building a cross compiled version of NEURON requires a few programs natively compiled on the host machine such
as nocmodl.
biswa
Posts: 11
Joined: Tue Jun 07, 2005 4:29 pm

Re: Compilation issue on a Cray XE6

Post by biswa »

Yes, I realized that after posting my query in the BB. The reason step 3 had failed previously was due to the fact that I used cc and CC, the compiler wrappers provided on XE6 instead of the standard gcc and g++. Even after successfully finishing step 3, the next hurdle to cross is static linking. It seems that neither

Code: Select all

--disable-shared
nor

Code: Select all

--enable-static
enforce a rigorous static build. It's pretty annoying that libgfortran.so is linked rather than the libgfortran.a. Step 4 fails with:

Code: Select all

libtool: link: CC -g -O2 -o ivoc nrnmain.o ivocmain.o classreg.o datapath.o ocjump.o symdir.o ../oc/nocable.o ../oc/modlreg.o  ../oc/.libs/libocxt.a ./.libs/libivoc.a ../nrnmpi/.libs/libnrnmpi.a ../oc/.libs/liboc.a ../mesch/.libs/libmeschach.a ../gnu/.libs/libneuron_gnu.a ../ivos/.libs/libivos.a /opt/gcc/4.6.3/snos/lib/../lib64/libgfortran.so /opt/gcc/4.6.3/snos/lib/../lib64/libquadmath.so /opt/fftw/3.3.0.0/interlagos/lib/libfftw3.so /opt/fftw/3.3.0.0/interlagos/lib/libfftw3f.so /opt/gcc/4.6.3/snos/lib/../lib64/libgomp.so -lrt /opt/gcc/4.6.3/snos/lib/../lib64/libstdc++.so -lm -Wl,-rpath -Wl,/opt/gcc/4.6.3/snos/lib/../lib64 -Wl,-rpath -Wl,/opt/fftw/3.3.0.0/interlagos/lib -Wl,-rpath -Wl,/opt/gcc/4.6.3/snos/lib/../lib64 -Wl,-rpath -Wl,/opt/fftw/3.3.0.0/interlagos/lib
/usr/bin/ld: attempted static link of dynamic object `/opt/gcc/4.6.3/snos/lib/../lib64/libgfortran.so'
collect2: ld returned 1 exit status
make[3]: *** [ivoc] Error 1
make[3]: Leaving directory `/biswa/neuron73/nrn-7.3/src/ivoc'
I've tried using

Code: Select all

LDFLAGS=-static
or

Code: Select all

LDFLAGS='-all-static'
with no joy.
hines
Site Admin
Posts: 1692
Joined: Wed May 18, 2005 3:32 pm

Re: Compilation issue on a Cray XE6

Post by hines »

Just curious. What cray xe6 are you using. We have built on the KTH Lindgren and a swiss machine. Anyway,
it often takes some experimenting along with looking at the HPC installation web pages to get the
environment and configuration working. When experimenting with different configure commands it is a good idea
to always start with a clean build directory so that no old stuff is used on the next try.
A 'make clean' is usually sufficient, 'make distclean' also removes Makefile and other files created by the *.in files.
Best of all is 'rm -r -f *' in a build directory (when it is different from the source directory).
I am out of town at the moment and do not have the login information for lindgren with me, so cannot copy the build shell script I use.
I'll see if I can scrape up the configuration commands for that were used at CSCS.

I wouldn't be surprised if the simplest working configuration is to build with dynamic linking. ie. use nothing or --disable-static
and also leave off the linux_nrnmech=no. i.e. try the cross compile part as

Code: Select all

./configure --prefix=`pwd` --without-x --with-paranrn --without-nmodl --without-memacs  CC=cc CXX=CC
and verify that the normal build is inadequate.
hines
Site Admin
Posts: 1692
Joined: Wed May 18, 2005 3:32 pm

Re: Compilation issue on a Cray XE6

Post by hines »

I guess the KTH and CSCS crays were xt5. So my experience with those may not directly translate in all details to the xt6 you are using.
Post Reply