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

Reply via email to