# Software Environment

<span style="font-family: arial,helvetica,sans-serif;">Environment Modules </span><span style="font-family: arial, helvetica, sans-serif;">(</span>[Lmod](http://www.admin-magazine.com/HPC/Articles/Lmod-6.0-Exploring-the-Latest-Edition-of-the-Powerful-Environment-Module-System)<span style="font-family: arial, helvetica, sans-serif;">) </span><span style="font-family: arial, helvetica, sans-serif;">are</span><span style="font-family: arial, helvetica, sans-serif;"> used to configure your environment for many pieces of installed software on greenplanet, including compilers and MPI environments.</span>

<span style="font-family: arial, helvetica, sans-serif;">To see a list of available packages, type: "ml spider"</span>

```bash
ml spider
```

<span style="font-family: arial,helvetica,sans-serif;">To load a specific package/version, type: </span><span style="font-family: arial,helvetica,sans-serif;"><span style="font-family: courier new,courier,monospace;">`ml modulename/versionnumber`<span style="font-family: arial,helvetica,sans-serif;">. The 2020.1 release of the Intel Compilers is: Type: "ml intel/2020.1"</span></span></span>

```bash
ml intel/2020.1
```

<span style="font-family: arial,helvetica,sans-serif;">To see which modules are currently loaded: Type: "ml"</span>

```bash
ml
```

<span style="font-family: arial,helvetica,sans-serif;">If you wish to make your settings default for all login sessions and jobs, place your ml commands in ~/.bashrc. If you want to use them just in a specific job, add them to the job script.</span>

<span style="font-family: arial,helvetica,sans-serif;">Some pieces of software may be installed to <span style="font-family: courier new,courier,monospace;">/sopt</span> on the cluster (shared opt) and not be configured in modules. Other packages that were modules previously may now be provided by the OS.</span>

<span style="font-family: arial,helvetica,sans-serif;">Note: it is highly recommended to a have </span><span style="font-family: 'courier new', courier, monospace;">`ml purge`</span><span style="font-family: arial,helvetica,sans-serif;"> at the beginning of the job execution portion of your slurm submission script. This clears out any accidental environments picked up from your login shell.</span>