-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minimise initialisation script to only initialise Lmod #261
Comments
This would also give us a way of documenting the compat layer (and important differences it may have) |
In terms of using old software on new hardware, probably the |
I wonder what use cases are not possible with the current approach. |
Currently you cannot (automatically) reverse the initialisation, the This means in general that we can't reliably mix and match software from different compat layers. Module files (and the use of an Lmod family) would provide a safe and documented way to do this. With that approach we would no longer need to build old software with new compat layers (and deal with the fallout), we can provide a global view which includes all compat layers. |
@boegel I just realised that this is even more important. Right now, it is not possible to initialise a different version of EESSI if you have already initialised a version. Our current init scripts assume certain actions if EESSI-related envvars are set in the environment. This means unless you know which variables to unset, you cannot escape the existing EESSI version (so if EESSI were your default environment like it is for me in Magic Castle, you cannot easily try another version). |
The Lmod feature
can be created, and a module file for this can be created containing:
which will set |
With the compat layer, we can have multiple OSes side-by-side without issue. The only reason we can't right now is because of our init script since it is adding compat layer paths to the environment. I think we should move almost all our init script into a module file, and indeed an initial attempt has already been made in #68.
In the past this was tricky because we needed
archspec
to determine the architecture, but if our bash only approach (#187) is reliable this would no longer be a restriction (we can usebash
from the host). And even deciding the architecture could be done as part of the LMOD_RC in Lua (which may even make us resilient against exported environment variables in a job context).Then for each compat layers, you can have a gateway module (with an Lmod family so you can't have two loaded at once) to give you access to a particular compat layer (and associated EB stack).
As a major plus, this would also mean we would be able leverage Lmod to work in different shell environments.
The only thing remaining in the initialisation script would be initialising Lmod. It wouldn't even matter which version as we should be able to switch version to match the pilot version as part of the compat module file (if this was considered necessary).
The text was updated successfully, but these errors were encountered: