Modules are used to connect to different software packages to run your scripts. Different versions of the software can be switched quickly and easily using the module commands. A variety of popular software like R, Python, MatLab, etc are available in the Discovery.
For more details see environment modules documentation
Modules represent an interface to different software packages. Modules change a user’s environment to include the path to software, thus making it available to the user. Also, modules allow users to keep a copy of the chosen software without needing extra storage. Even different versions of the same software are available.
Modules allow users on "Discovery" to plug-and-play with different software applications and switch between different versions fast and in easy manner. This makes it easier to keep several versions of the same software avoiding interference between similar components. Some currently available software includes MatLab, Gaussian, R, and Python. Some of the useful module commands are discussed in sub-page 'Module Commands'.
If the module you are looking for isn’t available in the discovery, then you can build it by using Software Stack (SStack) Tool.
If SStack cannot solve the problem, you can submit the software request by filling the form in this link → (HPC software request). After the module is updated into the discovery, you will be notified via email.
For example, if you have a perl script that needs to be run, you first need to load the perl module to your environment. You can choose the desired version of the perl module from the list of available modules. You can load as many modules as you wish to.
When running multiple scripts, it may cause loading multiple versions of the same compiler, and the module loaded last will always have precedence.
The best way to avoid this confusion is to unload the module when it’s no longer needed.