Hello,
I ran into similar issues when installing fenics on UF’s HPC as we only had an
older gcc as well (without c++ 11 support). I tried using the intel compilers
and MKL libraries, but getting that to work across the components installed
with hashdist was a very deep rabbit hole.
The simplest solution I found was to have hashdist install gcc in a first run,
and then on the second run have it use that version of gcc for the remaining
stack, which can be done by adding a parameters section to local.yaml. For
example:
parameters:
PATH: /home/[user]/.hashdist/bld/gcc/[gcchashvalue]/bin:/usr/bin:/bin
PROLOGUE: |
export CC=/home/[user]/.hashdist/bld/gcc/[gcchashvalue]/bin/gcc; export
CXX=/home/[user]/.hashdist/bld/gcc/[gcchashvalue]/bin/g++; export
FC=/home/[user]/.hashdist/bld/gcc/[gcchashvalue]/bin/gfortran
Also, the installation will use MPICH by default, where our cluster expects
OpenMPI. Running with MPICH caused a few alarms with the admins as it didn’t
have the instrumentation they were expected and I had to re-install with
OpenMPI at their request.
Good luck,
Charles
From: [email protected]
[mailto:[email protected]] On Behalf Of Johannes Ring
Sent: Tuesday, September 22, 2015 9:26 AM
To: Guy Moebs <[email protected]>
Cc: [email protected]; Sladkova
<[email protected]>
Subject: Re: [FEniCS-support] Fwd: Re: Fenics cluster installation problem
[missed the list]
Hi Guy,
Please see comments below.
On Tue, Sep 22, 2015 at 2:21 PM Guy Moebs <[email protected]
<mailto:[email protected]> > wrote:
Hello,
Thank you for your responses.
I'm the person who tries to install fenics for Katerina Sladkova on our cluster
in Nantes.
As you explained it, I put the source cache mirror in the
~/.hashdist/config.yaml and it works better, i.e. :
source_caches:
- dir: ./src
## For additional source cache mirror:
- url: http://fenicsproject.org/pub/hashdist/src
Now, the script fenics-install.sh goes further but stops with the following
error :
Downloading
http://fenicsproject.org/pub/hashdist/src/packs/tar.gz/6lm2emnxz6l7d7xg5dewmmit5p3meqgu...
[=========================] 100.0% (5.3MB of 5.3MB) 2.626MB/s ETA 0s
[parmetis] Building parmetis/3fq73xu4m2bo, follow log with:
[parmetis] tail -f
/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/_hashdist/build.log
[parmetis|ERROR] Command '[u'/bin/bash', '_hashdist/build.sh']' returned
non-zero exit status 2
[parmetis|ERROR] command failed (code=2); raising
I look at the file build.log and it ends with the following lines
2015/09/22 11:57:21 - INFO: [package:run_job] Building C object
libmetis/CMakeFiles/metis.dir/__/GKlib/error.c.o
2015/09/22 11:57:21 - INFO: [package:run_job] cd
/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/_build_metis/libmetis
&& /ccipl/users/gmoebs/.hashdist/bld/mpi/gmkx3ftk3tz2/bin/mpicc
-Dmetis_EXPORTS -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing
-fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable
-Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3
-fPIC -I/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/metis/GKlib
-I/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/metis/include
-I/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/metis/libmetis/.
-o CMakeFiles/metis.dir/__/GKlib/error.c.o -c
/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/metis/GKlib/error.c
2015/09/22 11:57:21 - INFO: [package:run_job] cc1: error: unrecognized command
line option "-Wno-unused-but-set-variable"
2015/09/22 11:57:21 - INFO: [package:run_job] cc1: error: unrecognized command
line option "-Wno-unused-but-set-variable"
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: ***
[libmetis/CMakeFiles/metis.dir/__/GKlib/blas.c.o] Error 1
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: *** Waiting for
unfinished jobs....
2015/09/22 11:57:21 - INFO: [package:run_job] cc1: error: unrecognized command
line option "-Wno-unused-but-set-variable"
2015/09/22 11:57:21 - INFO: [package:run_job] cc1: error: unrecognized command
line option "-Wno-unused-but-set-variable"
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: ***
[libmetis/CMakeFiles/metis.dir/__/GKlib/b64.c.o] Error 1
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: ***
[libmetis/CMakeFiles/metis.dir/__/GKlib/csr.c.o] Error 1
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: ***
[libmetis/CMakeFiles/metis.dir/__/GKlib/error.c.o] Error 1
2015/09/22 11:57:21 - INFO: [package:run_job] make[1]: ***
[libmetis/CMakeFiles/metis.dir/all] Error 2
2015/09/22 11:57:21 - INFO: [package:run_job] make[2]: Leaving directory
`/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/_build_metis'
2015/09/22 11:57:21 - INFO: [package:run_job] make[1]: Leaving directory
`/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/_build_metis'
2015/09/22 11:57:21 - INFO: [package:run_job] make: *** [all] Error 2
2015/09/22 11:57:21 - INFO: [package:run_job] make: Leaving directory
`/ccipl/users/gmoebs/.hashdist/tmp/parmetis-3fq73xu4m2bo/_build_metis'
2015/09/22 11:57:21 - ERROR: [package:run_job] Command '[u'/bin/bash',
'_hashdist/build.sh']' returned non-zero exit status 2
2015/09/22 11:57:21 - ERROR: [package:run_job] command failed (code=2); raising
It looks like you have an old version of GCC. You will need at least version
4.6. Are there other GCC versions available on the cluster? In that case you
will have to modify the hashdist profile such that it will use the correct
compiler.
I have an other question :
how can I tell fenics that I have some softwares already installed and that I
want to use them instead of downloaded ones ? For instance, if I want to use
Intel's compilers (icc/ifort/icpc), Intel's MPI (wrappers and compilation
options, libs), Intel's scientific library (mkl) for blas, lapack, etc. , what
and where should I change things ?
Unfortunately, building FEniCS with Intel compilers/MPI/MKL has not been tested
with hashdist and will therefore not work with the fenics-install.sh script. To
make it work, we will have to make changes in hashstack. This is on my TODO
list, but it will probably not happen in the near future.
So, your current options are to either build with GCC using hashdist or with
Intel and build everything from source manually.
Johannes
Thank you in advance for your advices.
Regards,
Guy Moebs
Ok. I have modified fenics-install.sh now such that it adds a source cache
mirror to fenicsproject.org <http://fenicsproject.org> in
~/.hashdist/config.yaml if this file does not exist. If you already have
~/.hashdist/config.yaml, you will have to add it manually.
Johannes
On Tue, Sep 22, 2015 at 10:48 AM Anders Logg <[email protected]
<mailto:[email protected]> > wrote:
I just want to add that we also experienced the problem with OpenSSL download
just now at Chalmers.
--
Anders
tis 22 sep. 2015 kl 09:41 skrev Johannes Ring <[email protected]
<mailto:[email protected]> >:
Hi,
It may look like it starts from the beginning, because the fenics-install.sh
script will download hashdist, hashstack and fenics-developer-tools every time
you run it. However, the other packages will be stored in ~/.hashdist (unless
you modify ~/.hashdist/config.yaml) and it will not build them again unless you
change the hashdist profile. I see from your terminal output that there is a
problem downloading openssl. This problem can be fixed by adding a source cache
mirror to fenicsproject.org <http://fenicsproject.org> . To do this, add the
following line under source_caches in ~/.hashdist/config.yaml:
- url: http://fenicsproject.org/pub/hashdist/src
Note that on a cluster it might be better to download hashdist and hashstack
manually instead of using the fenics-install.sh script. This gives you better
control and you can setup a hashdist profile to use modules from the cluster,
like compiler and MPI modules. See for instance the fenics.abel.gnu.yaml
example in hashstack.
Johannes
On Tue, Sep 22, 2015 at 8:00 AM Sladkova <[email protected]
<mailto:[email protected]> > wrote:
Hi,
I am an PhD student using Fenics for my thesis and we are trying to
installing FEnics also on our cluster (LPGN, University of Nantes). I
would like to ask you a question regarding this installation.
Exist there a way how to tell Fenics that he doesn't have to start the
installation from beginning? And that he can start the installation from
the point where he stopped the last time by for example giving him
what's still missing?
For example: fenics-install.sh downloads lot of thing, most of them
already exists on the cluster. But he doesn't look for them, he just
starts from the beginning. However sometimes the distant server doesn't
respond quickly enough and everything stops. At this point we would like
to start from the point where we stopped before.
I am also attaching a text file with an example of this problem.
Thank you very much for your time,
Katerina Sladkova
_______________________________________________
fenics-support mailing list
[email protected] <mailto:[email protected]>
http://fenicsproject.org/mailman/listinfo/fenics-support
--
Ingénieur de Recherche CNRS
Laboratoire de Mathématiques Jean Leray
UMR 6629 CNRS - Université de Nantes
[email protected] <mailto:[email protected]> --- 02 51 12 59 40
_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support