Dear EasyBuilders,
Following the brief discussion during last week's EasyBuild conf call
[1], I would like to see if we can find a common ground w.r.t. the
definitions of the 2016a version of the common toolchains, i.e.
foss/2016a and intel/2016a.
I would really like to settle the 2016a toolchain definitions by the end
of this week, in order to get them included in the next EasyBuild
release (scheduled for shortly before the EasyBuild User Meeting end of
this month) with rushing things.
The corresponding easyconfigs for two concrete propositions are
available as WIP pull requests, see [2] & [3].
An outlined overview of these is available below.
Next to the obvious version updates for each of the components, there
are a couple of key things to make up our mind on:
** GCC 4.9.3 vs GCC 5.3.0 **
The question here is if we stay with the latest release of GCC v4.x,
which as it happens is still the same version as the one included in the
2015b toolchains, or if we make the jump to GCC 5.x.
My personal feeling is that it's (still) too early to jump to GCC 5.x,
and that we should stick to GCC 4.9.3 for the time being.
The main reasons for this are that several Linux distributions are yet
to pick up GCC 5.x as the main system compiler, and thus that there are
many unknown issues that are bound to pop up left and right, and that
the latest release of the Intel compilers is known not to be fully
compatible yet with GCC 5.x (cfr. [4]).
** Intel compilers 2015.5.223 or 2016.1.150 **
Similar question here: do we stick with the now stable 2015 branch
(i.e., a minor update compared to the 2015.4.x included in the 2015b
toolchains), or do we make the jump to the latest and greatest 2016
versions (despite the trouble we had to go through to support installing
them cleanly in EasyBuild v2.5.0).
Although I'm always reluctant to pick up a major release of the Intel
compilers too early (I learned that the hard way), I have heard good
things about the update1 release of the 2016 branch, i.e. that most
problems that early adopters bumped into with the 2016.0 release have
been resolved. Additionally, it is my feeling that the Intel compilers
are less hairy then they once were; I find myself a lot less often
patching code because of incompatibilities with GCC.
As long as we stick with GCC 4.9.3 as the base for the Intel compilers
for the time being, I think this is a good option.
Besides, using 2015.5.233 in the 2016a toolchains would be rather weird
giving the obvious 'version conflict' between the toolchain name and the
version of the main component...
* GCC version in foss vs intel
With the GCCcore concept that was introduced in EasyBuild v2.5.0, it is
possible to use a common GCC version as a base for both the foss and
intel toolchains (e.g. 4.9.3), while using a different GCC version in
foss (e.g. 5.3.0).
This may have some benefits, e.g. all the features that the latest &
greatest GCC version features, and being able to capture and resolve
issues with GCC 5.x using a commonly used toolchain, which would help
speed up future adoption, while avoiding the use of a
known-to-be-incompatible version of GCC in the intel toolchain.
On the flipside, it's also a likely cause for headaches, like having to
take into account ABI incompatibilities [5].
If you're interested in using the next iteration of the common
toolchains in the near future, I would love to get your feedback, so we
can take it into account when finalizing the 2016a toolchain definitions.
Concrete proposals:
* foss/2016a
GCC 4.9.3 + binutils 2.25
OpenMPI 1.10.1
OpenBLAS 0.2.15
LAPACK 3.6.0
FFTW 3.3.4
ScaLAPACK 2.0.2
* intel/2016a
GCC 4.9.3 + binutils 2.25
icc/icpc/ifort 2016.1.150
impi 5.1.2.150
imkl 11.3.1.150
regards,
Kenneth
[1]
https://github.com/hpcugent/easybuild/wiki/Conference-call-notes-20160106#2016a-common-toolchains
[2] https://github.com/hpcugent/easybuild-easyconfigs/pull/2310
[3] https://github.com/hpcugent/easybuild-easyconfigs/pull/2311
[4] https://github.com/hpcugent/easybuild-easyconfigs/issues/2100
[5]
https://github.com/hpcugent/easybuild-easyconfigs/pull/2108#issuecomment-163284578