Consider the easyconfig
easyblock = 'Bundle'
name = 'singularity-slurm-bindings'
version = '3.0.0'
description = """Just a little testJust a little test."""
homepage = '()'
toolchain = SYSTEM
env_mod_extra_paths = {
'SINGULARITY_BIND': {
'paths': ['/pfs', '/scratch', '/appl'],
'delimiter': ',',
'prepend': False,
#'var_type': 'STRING',
#'var_type': 'PATH',
}
}
env_mod_category = 'tools'
referring to 3 filesystems on LUMI.
Issue 1 When running this easyconfig as is, I get the module file
help([==[
Description
===========
Just a little testJust a little test.
More information
================
- Homepage: ()
]==])
whatis([==[Description: Just a little testJust a little test.]==])
whatis([==[Homepage: ()]==])
whatis([==[URL: ()]==])
local root = "/users/kurtlust/LUMI-user/SW/container/singularity-slurm-bindings/3.0.0"
conflict("singularity-slurm-bindings")
append_path("SINGULARITY_BIND", "/pfs", ",")
append_path("SINGULARITY_BIND", "/appl", ",")
setenv("EBROOTSINGULARITYMINSLURMMINBINDINGS", root)
setenv("EBVERSIONSINGULARITYMINSLURMMINBINDINGS", "3.0.0")
setenv("EBDEVELSINGULARITYMINSLURMMINBINDINGS", pathJoin(root, "easybuild", "singularity-slurm-bindings-3.0.0-easybuild-devel"))
-- Built with EasyBuild version 5.2.1
so the line for /scratch is missing. The issue is not so much that it is missing, though I cannot see why it would be filtered out. Granted that on LUMI, those three directories are set up differently (/pfs is the base for Lustre, /appl is a symbolic link, but I'm not sure how /scratch is set up, probably some Lustre trick), but the main issue is that I get no warning in the screen output that something is wrong with /scratch and also cannot find anything in the log file about it being removed. The reason why /scratch is deleted may be LUMI-specific (though it could then happen on other systems with Lustre also), but the disturbing fact that there is no warning is likely not LUMI-specific.
It turns out that the issue is solved when using 'var_type': 'PATH', rather than the default value: The module is now what I would expect:
help([==[
Description
===========
Just a little testJust a little test.
More information
================
- Homepage: ()
]==])
whatis([==[Description: Just a little testJust a little test.]==])
whatis([==[Homepage: ()]==])
whatis([==[URL: ()]==])
local root = "/users/kurtlust/LUMI-user/SW/container/singularity-slurm-bindings/3.0.0"
conflict("singularity-slurm-bindings")
append_path("SINGULARITY_BIND", "/pfs", ",")
append_path("SINGULARITY_BIND", "/scratch", ",")
append_path("SINGULARITY_BIND", "/appl", ",")
setenv("EBROOTSINGULARITYMINSLURMMINBINDINGS", root)
setenv("EBVERSIONSINGULARITYMINSLURMMINBINDINGS", "3.0.0")
setenv("EBDEVELSINGULARITYMINSLURMMINBINDINGS", pathJoin(root, "easybuild", "singularity-slurm-bindings-3.0.0-easybuild-devel"))
-- Built with EasyBuild version 5.2.1
But this brings me to the issue 2. My first idea was to set 'var_type': 'STRING' as I was hoping that the three directories would then just be treated as strings and no tests would be run. But this is not what happens: Now no append_path lines are generated at all:
help([==[
Description
===========
Just a little testJust a little test.
More information
================
- Homepage: ()
]==])
whatis([==[Description: Just a little testJust a little test.]==])
whatis([==[Homepage: ()]==])
whatis([==[URL: ()]==])
local root = "/users/kurtlust/LUMI-user/SW/container/singularity-slurm-bindings/3.0.0"
conflict("singularity-slurm-bindings")
setenv("EBROOTSINGULARITYMINSLURMMINBINDINGS", root)
setenv("EBVERSIONSINGULARITYMINSLURMMINBINDINGS", "3.0.0")
setenv("EBDEVELSINGULARITYMINSLURMMINBINDINGS", pathJoin(root, "easybuild", "singularity-slurm-bindings-3.0.0-easybuild-devel"))
-- Built with EasyBuild version 5.2.1
Consider the easyconfig
referring to 3 filesystems on LUMI.
Issue 1 When running this easyconfig as is, I get the module file
so the line for
/scratchis missing. The issue is not so much that it is missing, though I cannot see why it would be filtered out. Granted that on LUMI, those three directories are set up differently (/pfsis the base for Lustre,/applis a symbolic link, but I'm not sure how/scratchis set up, probably some Lustre trick), but the main issue is that I get no warning in the screen output that something is wrong with/scratchand also cannot find anything in the log file about it being removed. The reason why/scratchis deleted may be LUMI-specific (though it could then happen on other systems with Lustre also), but the disturbing fact that there is no warning is likely not LUMI-specific.It turns out that the issue is solved when using
'var_type': 'PATH',rather than the default value: The module is now what I would expect:But this brings me to the issue 2. My first idea was to set
'var_type': 'STRING'as I was hoping that the three directories would then just be treated as strings and no tests would be run. But this is not what happens: Now noappend_pathlines are generated at all: