Andy,
The only way of ensuring reproducibility is to pin the intel version, and that was our focus when designing these toolchains, rather than having generic/versionless build recipes that might work or not depending on the defaults of your system. Since the intel version can be different from one site to another, the approach that I would recommend is to also modify the CrayIntel toolchain version number when you tailor the intel version to match your system (for example CrayIntel/2015.11-15.0.2). This will require you to use the --try-toolchain-version=2015.11-15.0.2 when build other stock CrayIntel/2015.11 easyconfig files on your system, however it will enable your recipes to co-exist with the existing ones (and will allow you to contribute them back one day). If you consider that this solution is not acceptable for you, please open an issue on Github so that we can discuss if we can improve the versioning scheme. Cheers, Guilherme -----Original Message----- From: Kenneth Hoste <[email protected]> Date: Wednesday 1 June 2016 22:08 To: "[email protected]" <[email protected]> Cc: Peretti-Pezzi Guilherme <[email protected]>, Marsella Luca <[email protected]>, "[email protected]" <[email protected]> Subject: Re: [easybuild] Newbie question: Generic easyblock to use for VASP >Hi Andy, > >On 01/06/16 14:39, Andy Turner wrote: >> >> Just thought I should let you know that this is now working, the final >> combination of options needed was: >> >> patches = [('makefile.include.crayxc_intel', '.')] >> prebuildopts = 'cp makefile.include.crayxc_intel makefile.include && ' >> >> Thanks for all your help with this. >> >> BTW, in working on this I noticed a bug in your CrayIntel-2015.11.eb >> toolchain. This toolchain specifies a particular verison of the Intel >> compiler (15.0.2.164): >> >> -- >> dependencies = [ >> # PrgEnv version is not pinned, as Cray recommends to use the >> latest (default) version >> ('PrgEnv-intel', EXTERNAL_MODULE), >> ('intel/15.0.1.133', EXTERNAL_MODULE), >> ('cray-libsci/13.2.0', EXTERNAL_MODULE), >> ('cray-mpich/7.2.6', EXTERNAL_MODULE), >> ] >> -- >> >> In fact, the Intel compiler versions are not part of the Cray PE >> release process, their version progression is decoupled from the Cray >> software release schedule. >> >> For example, we have the Nov 2015 PE release but do not have >> 'intel/15.0.1.133' (we have 'intel/15.0.2.164') so I had to modify >> this EasyConfig file to make the installation work. > >The 'intel' version was picked by the EasyBuilders @ CSCS based on >latest/recommended version info the Cray documentation. >Guilherme/Luca (CSCS) or Petar (in CC) can provide more details on this... > >> >> Having though about this a bit I think it makes more sense for the >> 'intel' module to be specified as a dependency in the VASP easyconfig >> rather than in the toolchain. Could the toolchain just contain: >> >> -- >> dependencies = [ >> # PrgEnv version is not pinned, as Cray recommends to use the >> latest (default) version >> ('PrgEnv-intel', EXTERNAL_MODULE), >> ('intel', EXTERNAL_MODULE), >> ('cray-libsci/13.2.0', EXTERNAL_MODULE), >> ('cray-mpich/7.2.6', EXTERNAL_MODULE), >> ] >> -- >> >> and then specify the specific intel version (if needed) in the >> software easyconfig? > >No, that won't work, because this would mean that you let EasyBuild load >whatever 'intel' version is the default, and then let intel/15.0.1.133 >be loaded as a dependency for VASP. That will most likely not work, and >result in a version conflict... > >If you want to change this, I would recommend slightly tweaking the >definition of the CrayIntel/2015.11 toolchain to use the 'intel' version >you have available. > >Ideally, these versions should be picked such that they work for anyone >who has that particular version of Cray PE release, but I'm not sure if >that's feasible, there seem to be small differences between Cray sites. > >Again, this discussion should probably be picked up with the folks at >CSCS... > > >regards, > >Kenneth

