-
Notifications
You must be signed in to change notification settings - Fork 128
Conference notes for 2022 10 06
Robert McLay edited this page Oct 17, 2022
·
1 revision
- Robert McLay (TACC)
- Matthew Cawood (TACC)
- Kenneth Hoste (HPC-UGent)
- Raj Ayyampalayam (University of Georgia)
- Sebastien Moretti (SIB, Switzerland)
- Kaylea Nelson (Yale Univ.)
- Dan Green (NC State Univ.)
- Q/A
- Quick Demo of git worktree
- Presentation on How Lmod loads modulefiles (part 2)
- Next Meeting Tue Nov. 8th at 9:30 US Central (15:30 UTC)
- see https://git-scm.com/docs/git-worktree
- Why use git worktree commands when branching:
- A replacement for git stash and git stash pop
- Or git clone and check out a different branch somewhere in your account
- git worktree is much faster than git clone (and branches do not get lost in your account)
- Branches can be left in an incomplete state. You can come back to them later
- Important commands
- git worktree add directory -> create or open a branch
- git worktree add ../testing -> switch or open testing branch
- git worktree list -> list checked out branches
- git worktree remove directory -> remove branch and files
- git worktree add directory -> create or open a branch
- Doesn't work with git submodules
- Uses hard paths: do not rename directory layout
- alias gw="git worktree"
- Example of three different directory layouts
- Have worktrees at the same level as bare repo (type A)
- Have layout like ~/w/lmod/{bare,master,testing} (type B)
- Checkout main branch then place worktrees in ~/w/lmod/.worktree (type C)
- cd w/lmod; git worktree add .worktree/testing
- (Add .worktrees in .gitignore)
- Youtube links
- (type A) https://www.youtube.com/watch?v=2uEqYw-N8uE
- (type C) https://www.youtube.com/watch?v=4_p1OdLeDLE&t
- (Using worktrees to manage dotfiles w/o symlinks) https://www.youtube.com/watch?v=tBoLDpTWVOM
- presentation available at https://github.com/TACC/Lmod/blob/master/my_docs/22/lmod_zoom_mtg_2022_10_04/presentation.pdf
- Part 1 was presented on 7 June 2022
- once loading of module is done:
- module is marked as "active"
- framestack is popped
- Tcl module files are basically converted to Lua on the fly
- but that's the subject of a whole separate talk (next meeting?)
- sandbox restricts which functions can be called in a module file
- sites can add additional functions that can be called in sandbox
- Lmod doesn't actually evaluate the module file, Lua does!
- Lmod code is only called when executing setenv(), etc. functions
- Lmod will not print any environment changes until all modules being loaded have been processed
- all environment changes by modules being loaded are kept in the 'varT' table
- a break statement in a module file being loaded may cancel the whole process!
-
How big is the Lmod codebase?
- ~30k LoC (~25k in src/, ~5k in tools/)
- bulk is in MasterControl.lua, Spider.lua, Master.lua
-
NC State Univ. recently started using Lmod on their workstations too
- mix of CentOS 7, RHEL8, Ubuntu
- all using same Lmod deployment
- some apps don't run on some OS's
- can an OS restriction be set in a module file?
- so output of "module avail" can indicate whether a module is compatible with a particular OS
- could separate module files in separate trees (one per OS)
- won't work, since module files should always be visible
- module files could set a property that specifies where those modules are supported
- environment variable could be set via /etc/profile script that specifies type of OS
- each module file could call a "central" function that determines whether the module file is compatible
- VUB does similar things w.r.t. dynamically hiding module files
- see https://github.com/vub-hpc/Lmod-UGent/blob/master/SitePackage.lua for more details
- good question for Lmod mailing list
-
How to subscribe to Lmod mailing list
-
Ubuntu version of Lmod is quite old?
- at least in public repos
- see Alexandre's work: https://github.com/surak/Lmod
- unclear why his packages are not in public repos
- Tue Nov. 8th at 9:30 US Central (15:30 UTC)
- see https://time.is/1530_8_Nov_2022_in_UTC/CT/CET?Lmod_monthly_meeting_Nov%2722