-
Notifications
You must be signed in to change notification settings - Fork 141
Conference notes for 2025 07 01
Robert McLay edited this page Jul 15, 2025
·
1 revision
- Q/A
- The theme of this meeting is
- Release of Lmod Internal Code docs
- what the %$^@!#& is going on with the Big Cache Branch?
- Lmod Internal Code documentation
- Now provides a walking tour through the code for module load foo/1.0
- Amazing work by Matthew Cawood to force different AI Agents to deliver readable docs.
- Detailed overview of how things like mcp and mname work. The core magic of Lmod.
- Lmod readthedocs
- Lmod 8.7.63 released
- Internal data structures like dbT where rebuild everytime a dependent module was loaded
- Complete rewrite of how dependencies are checked.
- Better handling of how code strings are serialized. Things like escapes and double quotes.
- Old Dependency checking
- Bet you didn't know that Lmod checks dependencies on load and unload.
- Lmod used to re-read and evaluate modulefiles to check dependencies.
- New Dependency checking
- Now dependencies are recorded in the ModuleTable for each module that has them
- This is much much faster then the old way.
- Trick to clear caches:
echo 3 > /proc/sys/vm/drop_caches - Fake case with 1 module that depends_on() 299 modules
| Lmod version | Total Time |
|---|---|
| 8.7.55: | 40.2 seconds |
| 8.7.63: | 5.2 seconds |
| BigCache: | 2.7 seconds |
- Detailed results for big cache branch
| Name | count | Total Time (seconds) |
|---|---|---|
| main | 1 | 2.7237679958344 |
| post_cmd | 1 | 0.61693596839905 |
| Shell:expand(varT) | 1 | 0.59209012985229 |
| Cache:build | 1 | 0.42909407615662 |
| performDependencyCk | 1 | 0.0017750263214111 |
| check_deps | 299 | 0.001509428024292 |
- It is a little faster but maybe not worth the trouble.
- Issue #773 Adding additional information to the spider database
- Possibly record executables found in $PATH entry
- Track other environment variables?