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

Reply via email to