Using Software Collections (SCL)

Software Collections, also known as SCLs, provide additional versions of system tools to be installed and used alongside the default version. This extends the lifetime and utility of the OS on chinook.

Using an SCL

To run an executable from a particular SCL, type the following command at a shell prompt:
$ scl enable software_collection... 'command...'
Or, alternatively, use the following:
$ scl enable software_collection... -- command...
Replace "software_collection" with a space-separated list of SCLs you want to use, and "command" with the command you want to run. For example, to start a session with python version 3.6.X:
$ scl enable rh-python36 -- bash -l
When in an SCL session, the exit command will end the session. A second exit command will have to be executed to end the login session.

Using an SCL in a SLURM Job

In order to use an SCL in a batch job, the job script either has to launch using scl to load the desired software, or the job script has to execute another script that does so. To launch a bash script (including a job script) that loads the python 3.6.X SCL, for example, put the following as the first line.
#!/usr/bin/scl enable rh-python36 -- /bin/bash
Until the script exits, any python commands or scripts will then be executed using python 3.6.9 instead of the system default.
Alternately, individual commands, or scripts, can be executed using the scl command to load desired SCLs just for the duration of that command. For example, put the following in a job script to execute a python script using python 3.6.X instead of the system default version.
/usr/bin/scl enable rh-python36 ./
If you are passing command line arguments to your script you will need to enclose your script and command in double quotes:
/usr/bin/scl enable rh-python36 "./ -n arg1"

More Information

scl usage information is available with the "-h" option.
man scl displays the man page.