On 09/18/2015 05:43 AM, Kenneth Hoste wrote:
On 18/09/15 12:31, Fokko Masselink wrote:
Take iccifort-2015.1.133.eb and iccifort-2015.1.133-GCC-4.9.2.eb for
example:
iccifort-2015.1.133.eb has these:
dependencies = [
('icc', version),
('ifort', version),
]
and iccifort-2015.1.133-GCC-4.9.2.eb has these:
dependencies = [
('icc', version, versionsuffix),
('ifort', version, versionsuffix),
]
If you look at icc-2015.1.133-GCC-4.9.2.eb
it installs icc and has GCC as dependency.
though you could also change it, so that icc-2015.1.133-GCC-4.9.2.eb
doesn't
install the icc, but just has 2 dependencies: icc-2015.1.133.eb and
GCC-4.9.2.eb.
That way you de-duplicate the installation of icc. Right?
Any reason not to do it like that?
Yes, there is a reason.
During the installation of icc, I'm not sure what the Intel installer
doesn't perform magic to figure out which GCC version is used, to then
hardcode that in one way or another in the installation.
In that sense, using icc as a dependency next to a GCC dependency may
yield a different installation of icc as it would be if the
EB-provided GCC is available.
This only matters w.r.t. the easyconfigs themselves: typically, you
would only install one of the icc easyconfigs, not both (with/without
GCC).
Just go for the one where a GCC is included underneath icc, and just
skip the one that relies on the system GCC?
I've been meaning to look at icc after my experiences with IBM's xlc
to see if we could do something similar to what I do on Power/BG. e.g.
http://www.siliconslick.com/easybuild/ebfiles_repo_cleaned/curie/xlc/xlc-13.1.0.1.484.eb
Basically, install the vendor's compiler and then come up with
different configurations (overriden via an environment variable)
for the different GCCs used underneath. That avoids a lot
of duplication.
jack