Environment Modules was first developed in the early 1990s by John L. Furlani at
Sun Microsystems. Version 1 was developed as pure shell scripts. With version 2 Environment Modules became a
C program evaluating modulefiles written in
Tcl. In the mid 1990s Peter W. Osel at
Siemens and Jens Hamisch at Strawberry released the 3.0beta version. R.K. Owen at the
National Energy Research Scientific Computing Center (NERSC) took over the project in the late 1990s and ported it to
Linux. He released version 3.1 in 2000 under the
GNU General Public License (GPL). During the 2000s, Environment Modules gained traction in the
high-performance computing (HPC) world and started to be used at the largest computing centers. Environment Modules was specified as a Baseline Configuration requirement of the
DoD High Performance Computing Modernization Program (HPCMP). In 2004, Mark Lakata of
MIPS Technologies developed a pure
Tcl reimplementation of Environment Modules. Maintenance of this alternative version was later continued by Kent Mein at the
University of Minnesota. In 2008, Robert McLay of the
Texas Advanced Computing Center (TACC) introduced Lmod, an alternative implementation project of Environment Modules written in
Lua. After the release of version 3.2.10 in December 2012, development of the
C implementation of Environment Modules was discontinued. In the following years, the Lmod project grew in popularity within the
HPC community. In 2017, stewardship of the Environment Modules project was transferred to Xavier Delaruelle of the
French Alternative Energies and Atomic Energy Commission (CEA). He released version 4, based on the pure
Tcl implementation, which was adapted to maintain compatibility with the earlier
C version. Since then, new features have been introduced regularly to enhance usability and extend functionality. In 2025, Modules became a
Linux Foundation project part of the High Performance Software Foundation (HPSF). == Architecture ==