Software Stack(SStack)
SStack is a tool to install multiple software stacks, such as Spack, EasyBuild, conda or others. These stacks are then linked together, using Lmod module files, to easily integrate with most HPC environments.
The main goal is to provide an easy way to install common software build tools, with same or institution specific configurations, for both site administrators and end users. The secondary goal is to provide a structured Lmod module hierarchy to enable easier use of different core software stacks and hierarchically display all software on a HPC cluster.
SStack is intended to be simple. It offers a nice and easy way to better structure your software stack deployments. The intended audience is for both site administrators and end users. SStack allows installing software in global locations as well as user specified directories. Since the module hierarchy is identical in both locations the over all module path will remain highly structured.
It’s recommended to use SStack to install your package on Discovery if the package isn’t available in the Modules. |
Installing Stack Types
You can use different stack types such as Spack and Conda, to install your intended package either in your home directory or in a project space. SStack is installed on Discovery and available through modules. To be able to use it, you need to load it in your environment.
module load sstack
To install a stack type, use the sstack install
command.
Syntax:
sstack install [OPTIONS]
-
OPTIONS:
-
Required:
-
-t
or--type
: Type of stack (Spack / conda / etc..) -
-n
or--name
: Name of stack (myspack / 2022A / etc..).
-
-
Optional:
-
-v
or--version
: Version of stack type.-
If not specified the default version is used. See
sstack show types
-
-
-p
or--path
: Location of stacks and module files.-
If not specified the stack will be installed in the default path, in the users home directory.
-
-
-
For example, to install spack
with the name `myspack`in your home directory, run:
sstack install -n myspack -t spack
The messages Stack Successfully Installed!
means that the stack is installed successfully.
This will create a module file which you can load into your environment to install packages.
module load spack/myspack
Installing a package with Spack is very simple. Syntax
spack install <package_name>
For example, to install the version 1.3
of zlib
package, run command:
spack install zlib@1.3
Once the package is installed successfully, a module is created where you can load in your envrunment to use the package.
To find the correct module name to load, run command:
module spider zlib
Output
------------------------------------------------------------------------------------------------------------------------------------------------------------
zlib:
------------------------------------------------------------------------------------------------------------------------------------------------------------
Versions:
zlib/1.2.12-2022a-gcc_12.1.0-7h2btk3
zlib/1.2.13-q6ra7r3
zlib/1.2.13-2023a-gcc_7.5.0-lzzirrq
zlib/1.2.13-2023a-gcc_12.2.0-6f6s62o
zlib/1.3-vv6lw7a
zlib/1.3-wktwfml
------------------------------------------------------------------------------------------------------------------------------------------------------------
For detailed information about a specific "zlib" 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 zlib/1.3-wktwfml
------------------------------------------------------------------------------------------------------------------------------------------------------------
To find the dependencies of the module, run:
module spider zlib/1.3-wktwfml
------------------------------------------------------------------------------------------------------------------------------------------------------------
zlib: zlib/1.3-wktwfml
------------------------------------------------------------------------------------------------------------------------------------------------------------
You will need to load all module(s) on any one of the lines below before the "zlib/1.3-wktwfml" module is available to load.
spack/spack21
spack/myspack
You have to get spack/myspack
installed before installing zlib/1.3-wktwfml
, run:
module load spack/myspack
Once of the dependencies are loaded, you can load the module of the installed package.
To load the zlib/1.3-wktwfml
module, run:
module load zlib/1.3-wktwfml
For more information, please refer to the SStack documentation