luca.heltai
unread,May 10, 2016, 1:16:08 PM5/10/16Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Spack
Dear all,
I convinced our cluster admin to allow for lockf on the login node. Now I’m facing another perhaps more difficult problem.
The default compiler on my machine is not installed properly (that’s one of my reasons to play around with spack: I want a safe and controlled environment). Tcl modules are used to load/unload modules, and the installed gcc will only work if LD_LIBRARY_PATH is set accordingly (another debatable choice…).
This my current situation:
login
export | grep LD_LIBRARY_PATH
=> no results
module load gnu/4.9.2
module list
Currently Loaded Modulefiles:
1) gnu/4.9.2
export | grep LD_LIBRARY_PATH
declare -x LD_LIBRARY_PATH="/u/shared/programs/x86_64/gnu/gcc/4.9.2/lib64:/u/shared/programs/x86_64/gnu/gcc/4.9.2/lib:/u/shared/programs/x86_64/gnu/isl/0.14/lib:/u/shared/programs/x86_64/gnu/cloog/0.18.1/lib:/u/shared/programs/x86_64/gnu/elf/0.8.13/lib:/u/shared/programs/x86_64/gnu/mpc/1.0.2/lib:/u/shared/programs/x86_64/gnu/mpfr/3.1.2/lib:/u/shared/programs/x86_64/gnu/gmp/5.1.3/lib”
Now, if I add the above compiler to spack (which succeeds) and try to use it (say, for instance, I want to install g...@6.1.0) I always get undefined symbol errors from the compiler itself, since (correctly!) spack does not export LD_LIBRARY_PATH when building in its protected environment, but without this the compiler itself will not work.
:[
My workaround at the moment was to uncomment the “unset LD_LIBRARY_PATH” in lib/spack/env/cc and replace it with the LD_LIBRARY_PATH of the compiler I’m using, to build and install a sane gcc compiler. Hopefully the installed compiler will work without LD_LIBRARY_PATH, and then I can move on…
Question 1: Is there a more intelligent way to achieve this? Maybe an env: option in the compiler.yaml that could be set to make the compiler happy?
Question 2: Once I installed a package in a location, if everything is compiled with RPATH, it should be possible to move around the entire spack tree without the need to recompile anything. Is this just wishful thinking? I know I can do this on my mac by some install_name_tool magic. Does spack support something like this?
Ideally:
login
cd /very/fast/drive
git clone …/spack
/very/fast/drive/spack/bin/spack install everything
mv spack /very/fast/drive /shared/lustre/or/nfs/drive
# /shared/lustre/or/nfs/drive/spack relocate_libraries <- I know how to do this on my mac. Would it be necessary/possible on Linux?
Thanks in advance for your patience!
Luca.