Hi Cormac,
On 16 Dec 2013, at 18:43, Garvey, Cormac T wrote:
>
> Hi All,
> Is there a way in Easybuild to specify a customized modulefile name/version
> in a easyconfig file.
>
> The
>
> options = {'modulename' : etc }
>
> only changes the module basename? and not the version number?
The 'modulename' in options is only used for extensions (Python packages, Perl
modules, R libraries, etc.).
It's used when the name to use for the "import" is different from the actual
package name, e.g. biopython vs "import Bio" (see previous email on the list).
It has no relevance to modules in any other way, so it's probably a bit of a
misnomer...
> The version number for the Intel compilers provided by the easyconfig files
> do not look correct to me.
>
> The version number used is the Intel Package or product number not the actual
> compiler/or library version
> number.
> e.g icc-2013.5.192.eb, the version specified is 2013.5.192, but in this Intel
> package the actual compiler
> version number is 13.1.3 (You can verify this with icc -v).
> If I specify version='13.1.3' in a easyconfig file, I run into problems
> because internally easybuild uses the
> Intel package version number (e.g 2013.5.192) and for example the
> sanity_check_step fails.
>
> For the Intel compilers and libraries I would like to use the actual version
> numbers and not the Intel
> package version number, what is the easiest way to do that in easybuild? (i.e
> I would like the icc module
> name to be icc/13.1.3 and not icc/2013.5.192).
I agree that this is not intuitively numbered. It's more of a historic thing I
guess; we never really cared for 'clean' version number for the individual
Intel tools, because we always use the ictce module.
The best way to customize the version numbers in the generated is via the
support for alternative module naming schemes.
This has no impact on existing easyconfigs at all: EasyBuild will neatly map
back and forth when required.
With that, you can put a simple Python module in place that customizes the
module naming for Intel tools to your liking.
See
https://github.com/hpcugent/easybuild/wiki/Using-a-custom-module-naming-scheme
for well outlined documentation, let us know if something is not clear.
You can even override the EasyBuild module naming scheme, e.g. only for the
Intel tools, so you don't have to reimplement it.
EasyBuild doesn't know how to determine the 13.1.3 version number from
2013.5.192, so you'll need to take care of that.
I'm not sure if you can use "icc --version" when the module name is created
though, and that won't work for stuff like MKL or Intel MPI anyway.
So, you might need to resort to a hard map, e.g.:
icc_versions = {
'2013.5.192': '13.1.3',
}
Feel free to share your custom module naming scheme if you want feedback on it.
regards,
Kenneth