The suggestions from
http://fenicsproject.org/pipermail/fenics-support/2015-June/001560.html
were very helpful. I have managed to get the first 49 packages built with a
custom gcc on my Centos 6.5 system, including mpich, scotch, parmetis, and
hypre. The build stalls at superlu_dist, however. It is complaining about not
finding the libquadmath, among other things, buit appears the problem is what
looks like a hard-coded PATH which points to the wrong (system) gcc. The PATH
listed on the build log by-passes the correct version installed in
/opt/gcc-4.8.2
2015/06/09 23:11:32 - INFO: [package:run_job] 'PATH':
u'/home/me/.hashdist/bld/parmetis/mx7whpqcrtab/bin:/home/me/.hashdist/bld/mpi/u5pxhayx63nn/bin:/usr/bin:/bin'
This appears to be the outcome of build.json, with relevant statements:
"build" : {
"commands" : [
{
"nohash_value" : "/usr/bin:/bin",
"set" : "PATH"
},
{
"prepend_path" : "PATH",
"value" : "${MPI_DIR}/bin"
},
{
"prepend_path" : "PATH",
"value" : "${PARMETIS_DIR}/bin"
},
Any suggestions for graceful fix? I'd like to break into the superlu_dist
archive and edit the json or other files, but I have no idea how to open/unpack
or repack.
Thus far, the key steps:
1. yum install environment-modules
2. Create modules for gcc-4.4.7 and gcc-4.8.2 and place in /etc/modulefiles/gcc
(files 4.8.2 and 4.4.7)
3. create my_feincs_profile.yaml (at bottom of message)
4. export FENICS_INSTALL_HASHDIST_PROFILE=/home/me/my_fenics_profile.yaml
my_fenics_profile.yaml:
"""
extends:
- file: linux.yaml
parameters:
PROLOGUE: |
source /etc/profile.d/modules.sh;echo "loading modules"; module unload
gcc/4.4.7; module load gcc/4.8.2; echo "setting default compilers"; export
CC=gcc; export CXX=g++; export FC=gfortran; export F77=gfortran; export
CPP=cpp;alias cc=/opt/gcc-4.8.2/bin/gcc; alias c++=/opt/gcc-4.8.2/bin/g++;
alias cpp=/opt/gcc-4.8.2/bin/cpp; alias gcc=/opt/gcc-4.8.2/bin/gcc; alias
g++=/opt/gcc-4.8.2/bin/g++; alias ld=/opt/gcc-4.8.2/bin/gcc
# The packages list specifies all the packages that you
# require installed. <#> will ensure that all packages
# and their dependencies are installed when you build this
# profile.
packages:
launcher:
cmake:
python:
host: false
build_with: |
bzip2, openssl,sqlite
link: shared
mpi:
use: mpich
blas:
use: openblas
lapack:
use: openblas
hypre:
with_openblas: true
petsc:
build_with: |
openblas, parmetis, scotch, suitesparse, superlu_dist, hypre
download: |
mumps, scalapack, blacs, ml
coptflags: -O3 -march=native -mtune=native
link: shared
debug: false
swig:
boost:
toolset: gcc
address_model: 64
build_with: python
ipython:
matplotlib:
ffc:
fiat:
instant:
ufl:
uflacs:
dolfin:
build_with: |
hdf5, openblas, parmetis, petsc, petsc4py, suitesparse, scotch, slepc,
slepc4py, vtk, zlib
mpi4py:
mshr:
"""
Module gcc/4.4.7
"""
#%Module1.0
##
##
proc ModulesHelp { } {
global version GCChome
puts stderr "\tGCC\n"
puts stderr "\tThis module loads the latest version of gfortran/gcc/g++.\n"
}
module-whatis "loads the latest GCC Compiler Environment"
# for Tcl script use only
set version 4.4.7
set GCChome /usr
prepend-path PATH $GCChome/bin
prepend-path INCLUDE $GCChome/include
prepend-path LD_LIBRARY_PATH $GCChome/lib64
prepend-path MANPATH $GCChome/man
"""
Module gcc/4.8.2
"""
#%Module1.0
##
##
proc ModulesHelp { } {
global version GCChome
puts stderr "\tGCC\n"
puts stderr "\tThis module loads the latest version of gfortran/gcc/g++.\n"
}
module-whatis "loads the latest GCC Compiler Environment"
# for Tcl script use only
set version 4.8.2
set GCChome /opt/gcc-$version
prepend-path PATH $GCChome/bin
prepend-path INCLUDE $GCChome/include
prepend-path LD_LIBRARY_PATH $GCChome/lib64
prepend-path MANPATH $GCChome/man
"""
_______________________________________________
fenics-support mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics-support