








Title: Lmod: Building a Community around an Environment Module Tool



Lmod is a modern, flexible, robust environment module system: the
system tool that "sets the table" by helping supercomputer users load
the software packages they need to do their work.  It is a Lua-based
drop-in replacement for the venerable TCL/C environment module
system. Because needs vary across the diverse computational research
community, module systems like Lmod are mission-critical, ubiquitous,
and expected on such systems: users need help selecting the correct
combination of tools from among the thousands available on modern,
large-scale systems. 
 
 
This is not a talk about Lmod's features or design; instead, the focus
is on process, community, and culture.  What is it like to develop,
maintain, and support a tool for a community that is often unaware
that it (or Lua) even exists?  How does one go about diagnosing and
correcting problems on systems to which you cannot get access? 
 
But the talk also addresses an important Lua-related issue. A module
system loads a given software package by interpreting a 'modulefile'
that describes the details of the environment that software package
needs. Lmod's native modulefiles are Lua programs; Lmod parses legacy
TCL modules by translating their instructions into Lua. This approach
has been very successful, but has not been without its challenges:
this talk includes an introduction to some of the associated technical
issues and edge cases. 
 
This has been an interesting ride, from a local tool deployed at a
single site in Texas, to an open source mainstay that is mission
critical at hundreds of supercomputer centers around the world. World
domination through Lua and Lmod, one center at a time! 
 

title ideas: 




On today's supercomputers, chemists, biologists, physicists and
engineers are sharing the same system and they all need different
software. Environment Modules have been the way since the '90 that
users select the software they need.  They allow users to load and
unload the packages they want.  They get to control which version of
the software they use, rather than the system admininstrators.  Lmod,
implemented in Lua, is a modern replacement for the venerable TCL/C
based tool. Lmod offers many features to handle the vastly more
dynamic software environment than the original tool was designed to
handle.

This talk will not describe the features of Lmod in detail, instead it
will focus on the following: (1) What it is like to develop and
maintain an open source tool for 7 years that is used by a large
community of busy users and sysadmins which are only interested in
tools that works way better than the tools they currently have.  They
have never heard of Lua and they don't care how beautiful it is.  (2)
How do you debug problems on a system you'll never get to log into?
(3) Lmod uses site generated files, called 'modulefiles'. These
modulefiles are Lua programs which are evaluated one way to load,
another way to unload, yet another to get help on packages.  We use
nice features of Lua to cleanly implement the 8 different ways that
modulefiles are evalutated. (4) For 20+ years the HPC community has
been using TCL based modulefiles, Lmod translates these on the fly
into Lua.  This has worked well, except for some interesting edge
cases.

This has been an interesting ride, starting with one supercomputer
center in Texas, to a tool that is used in centers around the world.
World domination through Lua and Lmod one center at a time.

--------------



