Software on sapslurm tmp: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
=Introduction= | =Introduction= | ||
Centrally-installed software on SapSlurm will typically be in one of three formats: a software module, a Singularity container, or a Conda environment. Outline here is an explanation of each category software and how to use them. | On SapSlurm users have the option to [https://wiki.gacrc.uga.edu/wiki/Build_Applications_on_Sapelo2 install their own software] or use software installed centrally on Sapelo2 by the GACRC staff. Centrally-installed software on SapSlurm will typically be in one of three formats: a software module, a Singularity container, or a Conda environment. Outline here is an explanation of each category software and how to use them. | ||
=Software Modules= | =Software Modules= | ||
Line 91: | Line 91: | ||
===Searching for Software Modules=== | ===Searching for Software Modules=== | ||
Searching for software modules on Sapelo2 can be done with the <code>module spider</code> command. It is important to note that while the module spider command is case-insensitive, there are some cases in which the case of your search pattern can affect how the search results are displayed. For example, if you enter the command <code>module spider python</code>, it would return every software module on SapSlurm that has the string "python" in it (in upper or lowercase). On the other hand, if you were to enter the command <code>module spider Python</code>, with an uppercase "P", it would the software modules on SapSlurm specifically for Python. For example: | |||
If you do not find some software that you would like to use already installed on | <nowiki> | ||
bc06026@ss-sub1 ~$ module spider Python | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
Python: | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
Description: | |||
Python is a programming language that lets you work more quickly and integrate your systems more effectively. | |||
Versions: | |||
Python/2.7.16-GCCcore-8.3.0 | |||
Python/3.7.4-GCCcore-8.3.0 | |||
Python/3.8.2-GCCcore-8.3.0 | |||
Other possible modules matches: | |||
Biopython Boost.Python IPython bx-python netcdf4-python openslide-python | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
To find other possible module matches execute: | |||
$ module -r spider '.*Python.*' | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
For detailed information about a specific "Python" package (including how to load the modules) use the module's full name. | |||
Note that names that have a trailing (E) are extensions provided by other modules. | |||
For example: | |||
$ module spider Python/3.8.2-GCCcore-8.3.0 | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------- | |||
bc06026@ss-sub1 ~$ </nowiki> | |||
If you do not find some software that you would like to use already installed on SapSlurm, you may request that we install it [https://uga.teamdynamix.com/TDClient/2060/Portal/Requests/ServiceDet?ID=25850 here]. | |||
===Important Notes Regarding Software Modules=== | ===Important Notes Regarding Software Modules=== | ||
* If loading more than one software module, make sure that there are no toolchain conflicts, as discussed on our [https://wiki.gacrc.uga.edu/wiki/Avaliable_Toolchains_and_Toolchain_Compatibility#Toolchain_compatibility toolchain wiki page]. Loading multiple software modules with conflicting toolchains will cause your job to fail. | |||
* If you need to use software modules that have conflicting toolchains at the same time, you could reach out to us to see if we could install a version of your software with a particular toolchain, or you could try loading one software module, then unloading it and loading another, if your workflow allows this. | |||
* Note that software modules often have dependencies that are packaged together into one module. For example, the toolchain "BUSCO/4.0.5-foss-2019b-Python-3.7.4" will load Python 3.7.4, so you would not need to load Python separately when using BUSCO. For a full list of what a software module includes, use the <code>module list</code> command after loading a module. | |||
* Loaded software modules do not persist across separate login sessions, and will be unloaded upon exiting an interactive session or the completion of a job. | |||
=Singularity Containers= | =Singularity Containers= |
Revision as of 09:35, 2 July 2020
Introduction
On SapSlurm users have the option to install their own software or use software installed centrally on Sapelo2 by the GACRC staff. Centrally-installed software on SapSlurm will typically be in one of three formats: a software module, a Singularity container, or a Conda environment. Outline here is an explanation of each category software and how to use them.
Software Modules
The majority of software centrally installed on SapSlurm is installed in the form of a software module. A software module is a grouping of some software and dependencies. By leveraging software modules, you gain access to only the software you need when you need it. This is achieved by modifying your PATH environmental variable as well as creating other environment variables.
Software modules are in the format Name/Version-Toolchain. A toolchain is a collection of ancillary software discussed further here.
Here are some examples of Python modules on SapSlurm:
Python/2.7.16-GCCcore-8.3.0 Python/3.7.4-GCCcore-8.3.0 Python/3.8.2-GCCcore-8.3.0
Here is an example of how the command "python" changes its path and thus version after a module is loaded:
bc06026@ra4-2 ~$ which python /usr/bin/python bc06026@ra4-2 ~$ python -V Python 2.7.5 bc06026@ra4-2 ~$ module load Python/3.8.2-GCCcore-8.3.0 bc06026@ra4-2 ~$ which python /apps/eb/Python/3.8.2-GCCcore-8.3.0/bin/python bc06026@ra4-2 ~$ python -V Python 3.8.2 bc06026@ra4-2 ~$
Software Module Commands
Software modules are managed with module
commands. Here are some useful module
commands:
module spider pattern
- search for available software, i.e.,module spider Python
module load moduleName
– loads a software module for use, i.e.,module load Python/3.8.2-GCCcore-8.3.0
module unload moduleName
– unloads a software module, i.e.,module unload Python/3.8.2-GCCcore-8.3.0
module list
– lists currently loaded software modulesmodule avail
– lists all available software modules
Using Software Modules
When you first log into ss-sub1, you will not have any modules loaded. There are two scenarios in which you would module load
a software module, in a submission script and in an interactive job session. You may search for modules on the login node with the module spider
command, but please never load software modules from the login node.
Here is an example of loading a software module in a submission script:
#!/bin/bash #SBATCH --job-name=testserial # Job name #SBATCH --partition=batch # Partition (queue) name #SBATCH --ntasks=1 # Run on a single CPU #SBATCH --mem=1gb # Job memory request #SBATCH --time=02:00:00 # Time limit hrs:min:sec #SBATCH --output=testserial.%j.out # Standard output log #SBATCH --error=testserial.%j.err # Standard error log #SBATCH --mail-type=END,FAIL # Mail events (NONE, BEGIN, END, FAIL, ALL) #SBATCH --mail-user=username@uga.edu # Where to send mail cd $SLURM_SUBMIT_DIR module load R/3.6.2-foss-2019b R CMD BATCH add.R
Note that the module is loaded after the Slurm headers (#SBATCH lines), but before calling the software, which in this case is R. This is important as the Slurm headers need to come first, and the proper version of the software to be used must be loaded prior to being called.
Here is an example of a module being loaded in an interactive session on SapSlurm:
bc06026@ra4-2 ~$ module list No modules loaded bc06026@ra4-2 ~$ module load Python/3.8.2-GCCcore-8.3.0 bc06026@ra4-2 ~$ module list Currently Loaded Modules: 1) GCCcore/8.3.0 5) ncurses/6.1-GCCcore-8.3.0 9) XZ/5.2.4-GCCcore-8.3.0 2) zlib/1.2.11-GCCcore-8.3.0 6) libreadline/8.0-GCCcore-8.3.0 10) GMP/6.1.2-GCCcore-8.3.0 3) binutils/2.32-GCCcore-8.3.0 7) Tcl/8.6.9-GCCcore-8.3.0 11) libffi/3.2.1-GCCcore-8.3.0 4) bzip2/1.0.8-GCCcore-8.3.0 8) SQLite/3.29.0-GCCcore-8.3.0 12) Python/3.8.2-GCCcore-8.3.0 bc06026@ra4-2 ~$ module unload Python/3.8.2-GCCcore-8.3.0 bc06026@ra4-2 ~$ module list No modules loaded bc06026@ra4-2 ~$
In the above example we see that we start with no modules loaded. Then upon loading the Python/3.8.2-GCCcore-8.3.0 module, we load Python and software included in the GCCcore-8.3.0 toolchain (the version of the compiler suite from which this instance of Python was compiled). If we are finished using a software module, we can simply unload it with the module unload
command, and it will unload everything that came with the software module.
Searching for Software Modules
Searching for software modules on Sapelo2 can be done with the module spider
command. It is important to note that while the module spider command is case-insensitive, there are some cases in which the case of your search pattern can affect how the search results are displayed. For example, if you enter the command module spider python
, it would return every software module on SapSlurm that has the string "python" in it (in upper or lowercase). On the other hand, if you were to enter the command module spider Python
, with an uppercase "P", it would the software modules on SapSlurm specifically for Python. For example:
bc06026@ss-sub1 ~$ module spider Python ------------------------------------------------------------------------------------------------------------------------------------------------------------- Python: ------------------------------------------------------------------------------------------------------------------------------------------------------------- Description: Python is a programming language that lets you work more quickly and integrate your systems more effectively. Versions: Python/2.7.16-GCCcore-8.3.0 Python/3.7.4-GCCcore-8.3.0 Python/3.8.2-GCCcore-8.3.0 Other possible modules matches: Biopython Boost.Python IPython bx-python netcdf4-python openslide-python ------------------------------------------------------------------------------------------------------------------------------------------------------------- To find other possible module matches execute: $ module -r spider '.*Python.*' ------------------------------------------------------------------------------------------------------------------------------------------------------------- For detailed information about a specific "Python" package (including how to load the modules) use the module's full name. Note that names that have a trailing (E) are extensions provided by other modules. For example: $ module spider Python/3.8.2-GCCcore-8.3.0 ------------------------------------------------------------------------------------------------------------------------------------------------------------- bc06026@ss-sub1 ~$
If you do not find some software that you would like to use already installed on SapSlurm, you may request that we install it here.
Important Notes Regarding Software Modules
- If loading more than one software module, make sure that there are no toolchain conflicts, as discussed on our toolchain wiki page. Loading multiple software modules with conflicting toolchains will cause your job to fail.
- If you need to use software modules that have conflicting toolchains at the same time, you could reach out to us to see if we could install a version of your software with a particular toolchain, or you could try loading one software module, then unloading it and loading another, if your workflow allows this.
- Note that software modules often have dependencies that are packaged together into one module. For example, the toolchain "BUSCO/4.0.5-foss-2019b-Python-3.7.4" will load Python 3.7.4, so you would not need to load Python separately when using BUSCO. For a full list of what a software module includes, use the
module list
command after loading a module. - Loaded software modules do not persist across separate login sessions, and will be unloaded upon exiting an interactive session or the completion of a job.
Singularity Containers
[insert singularity info here]
Conda Environments
[insert conda info here]