hi garvey,
There seems to be a restriction in Easybuild that all
dependencies/builddependencies defined in a Easybuild
configuration file need to be also built with the same toolchain. Is there
some way to remove this restriction?
this issue has been raised before, so we are aware of it, but unless i'm
mistaken, no easy solution exists for this, and at least i don't
consider it as a real problem. (but i admit that this is a personal
viewpoint, and maybe full lmod support might be a good opportunity to
introduce a more flexible form of subtoolchains).
e.g
If I build ScaLAPACK with the gmvapich2 toolchain and I want to use
OpenBLAS(dependencies), I must
also build OpenBLAS with the same toolchain gmvapich2. OpenBLAS is not a
distributed parallel library and
does not need an MPI library, my preference in this case would be to build
OpenBLAS with just the GCC
compiler and define this version as a dependency when I build ScaLAPACK.
if you build a toolchain, ScaLAPACK is part of that toolchain. a
toolchain provides support a c,C++ and fortran compiler; blas, lapack,
mpi, scalapack and fftw.
i don't consider it as an issue because it is a form of greatest common
divisor between software: packages typically need a few of these, and
the version dependent naming is squased into the toolchain name and version.
but the important thing: EB supports building with --robot, so it does
not impose any extra work for the EB user. just do eb --robot
some_easyconfig_using_some_toolchain.eb and eb will resolve all
dependencies and build all that is missing (including the whole toolchain).
the only waste might be that there are duplicate installations, if they
are truly identical. (eg GCC will only build once for 2 toolchains that
are GCC based).
If I build any a distributed parallel Application with CMake and I define
CMake as a builddependency,
I must build CMAKE with the same parallel toolchain, when I would prefer to
build CMAKE with just a GCC
compiler.
Any suggestions on how to do this?
no. just set CMAKE as the dependency and build with --robot (and go for
a coffee ;)
e.g. some people have tried to convince me that CMAKE is truly
independent of compiler/blas/mpi/fft, so this could be a waste of
compilation time and disk usage, but keep in mind that this is the
exception (and i'm not convinced it's actually correct, given amount of
hooks CMAKE provides, also implying an inormous amount of patches to be
applied, making it very dependent of the toolchain; but that's a
different discussion altogether.)
mostly just my 2 cents ;)
stijn
Thanks,
Cormac.