easybuild icon indicating copy to clipboard operation
easybuild copied to clipboard

Add clarification of GCC and GCCcore toolchains

Open verdurin opened this issue 8 years ago • 2 comments

It would be helpful to add an explanation of the reasoning behind the creation of the GCC and GCCcore toolchains, and give guidance on when to choose which one.

There is good material for this in the comments in https://github.com/easybuilders/easybuild-easyconfigs/pull/5579

verdurin avatar Jan 04 '18 15:01 verdurin

Also, from a Slack thread:

GCCcore is a base (or core) compiler, which sits underneath "real" compilers like Intel, Clang, etc. GCC is a bundle of GCCcore + binutils.

By building stuff with GCCcore , we can use those installations to resolve dependencies for stuff built with GCC, iccifort, foss, intel, etc. So we don't need two or more (basically identical) installations.

We build stuff with GCCcore when performance is irrelevant and MPI or BLAS/LAPACK is not needed (like for CMake), but use GCC or iccifort when it does matter (like for scientific apps like DIAMOND)

verdurin avatar Jan 21 '21 14:01 verdurin

"use GCC or iccifort when it [performace] does matter" - I would add, because I've seen this be a source of confusion, that naturally GCC isn't faster than GCCcore, since it's just a bundle of GCCcore and binutils, but we use GCC anticipating (or often in parallel with) a separate easyconfig for a different compiler toolchain, usually iccifort, which is where the performance may differ

migueldiascosta avatar Jan 22 '21 02:01 migueldiascosta