Skip to content

Conference notes for 2025 07 01

Robert McLay edited this page Jul 15, 2025 · 1 revision

Lmod Zoom Mtg July 1st

  • 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.

Big Cache results from Ward Poelmans in Brussels

  • 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

Question: Is using the big cache (includes text of modules) worth it?

Clone this wiki locally