
By Xavier Delaruelle, CEA
HPSF is delighted to welcome Modules to the High Performance Software Foundation as an established project. Modules, also called Environment Modules, is a tool designed to help users dynamically modify their shell environment. It provides the module command line tool which is a well known interface of HPC users to access the software catalog of supercomputers. Users load and unload scripts called modulefiles to modify all kinds of items part of the shell environment, including environment variable, shell alias, shell function and command-line completion. Modules is shell independent and supports all major shells and scripting languages. It runs on all kinds of OSes like Linux, macOS and Windows.
The Modules project has a long and rich history, dating back to 1991. It was created by John L. Furlani at Sun Microsystems, then managed by R.K. Owen at NERSC between the late 1990s and 2017. Since then, the project has been actively developed and maintained at CEA, which has significantly advanced its features. As a general member of the HPSF, CEA is pleased to transfer the stewardship of Modules to the foundation.
Why We’re Joining HPSF
The mission of HPSF — to lower barriers to HPC use, foster community-driven development, and support a portable and interoperable software stack — perfectly aligns with our own goals. Modules has always focused on making HPC environments easier to manage and more accessible. By joining HPSF, we aim to strengthen our collaboration with the broader HPC community, share best practices, and benefit from the foundation’s governance model to ensure the project’s continuity and growth.
Becoming part of HPSF will help us increase visibility, attract new contributors, and formalize community processes such as the creation of a Technical Steering Committee. Most importantly, it places the project under a neutral, community-oriented umbrella, ensuring that Modules continues to thrive and evolve for years to come.
Project Highlights
We’re continuously enhancing Modules by adding new features that expand what you can do with modulefile scripts and the module command. Each release includes detailed documentation and practical examples showcasing the most significant improvements. We also maintain a strong focus on quality, with over 22,000 integration tests ensuring reliability across diverse environments. Our goal is to deliver features that are robust, thoroughly tested, and proven in real-world use.
A particularly interesting use case is the ability to finely manage dependencies between modulefiles, making it possible to define long chains of requirements that reflect the complexity of the underlying software stack. Modules now fully handles conflicts between modulefiles, ensuring users always work within a consistent environment.
The latest release (version 5.6) introduced a module hierarchy mechanism that organizes modulefiles through a primary modulepath. Loading specific modules can dynamically enable additional modulepaths, creating structured software environments. A dependency link is automatically established between the modulefiles in these additional paths and the module that activated them.
New and Upcoming Initiatives
Next, we plan to establish the Technical Steering Committee of the project and set up regular meetings to openly discuss the project roadmap and prioritize features for upcoming releases.
Over the past few months, we’ve gathered valuable feedback from the community, which has shaped a list of new features to develop. Work on these enhancements will begin in the coming weeks.
One planned feature will allow users to search modulefiles automatically when a command is not found. Modern shells such as bash, zsh, and fish provide hooks that run when an unrecognized command is entered. Leveraging this mechanism could give users direct access to the software catalog without needing to load a module first.
Get Involved
We need your help to keep Modules growing and improving. Share feedback: tell us what’s working, what’s not, and what you’d like to see next. Contribute: submit code, improve documentation, or report issues — every contribution matters. Stay connected: join our mailing list, chat with us on Matrix, and follow us on social media (X, Mastodon, Bluesky) to keep up with news and releases.
About the Author
Xavier Delaruelle is the manager of the HPC Operations team at CEA. He is the head of the Technical Steering Committee for Modules and has been working on the project since 2013. He also coordinates CEA’s technical activities on the Alice Recoque supercomputer, the future second exascale system of EuroHPC.
About the CEA
The CEA is a public research organization that supports public policy decision-making and equips French and European businesses and communities with the scientific and technological means to better navigate four major societal transitions: energy transition, digital transition, future healthcare, and national/global security. Its mission is to ensure France and Europe maintain scientific, technological, and industrial leadership, contributing to a more secure and controlled present and future for all. The CEA is guided by three core values: curiosity, cooperation, and a strong sense of responsibility. Learn more at: www.cea.fr/english