In computing, a module is a unit of software that is designed to be independent, interchangeable, and contains everything necessary to provide the desired functionality.
[[https://en.wikipedia.org/wiki/Modular_programming Wikipedia, "Modular programming"]]
The term "module" may sometimes have a more specific meaning depending on the context.
This page describes a few types of modules and suggests links to further documentation content.
== Disambiguation ==
=== Lmod modules ===
Also called "environment modules", Lmod modules are used to alter your (shell) environment so as to enable you to use a particular software package,
or to use a non-default version of certain common software packages such as compilers. See [[Using modules]].
=== Python modules ===
In Python, a module is a file of code (usually Python code) which can be loaded with the import ...
or from ... import ...
statements to provide functionality. A Python package is a collection of Python modules; the terms "package" and "module" are frequently interchanged in casual use.
[[https://www.tutorialspoint.com/What-is-the-difference-between-a-python-module-and-a-python-package Tutorialspoint.com, "What is the difference between a python module and a python package?"]]
Certain frequently used Python modules such as Numpy can be imported if you first load the scipy-stack
Lmod module at the shell level.
See [[Python#SciPy_stack|SciPy stack]] for details.
We maintain a large collection of [[Python#Available_wheels|Python "wheels."]]
These are modules which are pre-compiled to be compatible with the [[Standard software environments]].
Before importing modules from our wheels, you should create a [[Python#Creating_and_using_a_virtual_environment|virtual environment]].
Python modules which are not in the scipy-stack
Lmod module or in our wheels collection can be installed from the internet
as described in the [[Python#Installing_packages|Installing packages]] section.
== Other related topics ==
The main [[Available software]] page is a good starting point. Other related pages are:
* [[Standard software environments]]: as of April 1, 2021, StdEnv/2020
is the default collection of Lmod modules
* Lmod [[modules specific to Niagara]]
* Tables of Lmod modules optimized for [[Modules avx|AVX]], '''[[Modules avx2|AVX2]]''' and '''[[Modules avx512|AVX512]]''' [[Standard_software_environments#Performance_improvements|CPU instructions]]
* [[:Category:Software|Category ''Software'']]: a list of different software pages in this wiki, including commercial or licensed software
== Footnotes ==