Modules and the module load command are instructed upon how to be used in the Using Modules article found Here. Spack is a package management tool that has simple syntax.
Spack load
Some packages and modules have what are called dependencies. A dependency is when a package requires the loading of another package in order to work correctly.
Spack greatly simplifies handling dependencies. The loading of a package with the Spack Load command will also load all of the packages dependencies.
The Spack Load command uses the following syntax:
$ spack load packagename
Spack list
Spack list works similarly to the module avail command.
Entering this command will bring up a list of all the available packages that spack could load.
$ spack list
When to use spack or module load
Sometimes it can be unclear whether to load with module or with spack.
For example if you enter the commands module avail, and spack list while on the rc cluster, both return a loadable package of py-torchvision.
Generally speaking, you should always use spack load when possible. This is because you will always get the correct version and it will also handle all dependencies.
If you were to module load py-torchvision, you would have to specify the version, as well as make sure you have the correct version of python.
For most python packages you should use spack load, as it also loads the correct version of python and all other dependencies.
Module Load can be useful when you want a specific version of a package. Spack load will always load the newest version, or the version specified by RC.
If you would like to use an older version of the package for any reason, it may be available in Module avail.
If there are any further questions, or there is an issue with the documentation, please contact rc-help@rit.edu for additional assistance.