...
Most importantly, Spack is simple. It offers a simple spec syntax so that users can specify versions and configuration options concisely. Spack is also simple for package authors: package files are written in pure Python, and specs allow package authors to maintain a single file for many different builds of the same package.
How can I built my own python software stack using SPACK
Download SPACK to your home directory (If using another directory, replace $HOME)
Code Block |
---|
language | bash |
---|
title | Download and install from github |
---|
|
git clone https://github.com/spack/spack |
Code Block |
---|
language | bash |
---|
title | To use system spack as an upstream install |
---|
|
cd ${HOME}/spack
git checkout releases/v0.16
cp /share/Apps/usr/etc/spack/* ${HOME}/spack/etc/spack |
Default target is x86_64. To build applications optimized for underlying cpu replace x86_64 on line 97 of packages.yaml with
- ivybridge for Ivybridge nodes i.e. debug partition (will run on all partitions)
- haswell for Haswell and Broadwell nodes i.e lts, im1080, eng, and engc partitions (will not run on debug partition)
- skylake_avx512 for Skylake and Cascade lake nodes only i.e. enge, im2080, health, chem, hawcpu, hawkgpu, hawkmem and infolab partitions
Code Block |
---|
language | bash |
---|
title | Add spack to your environment by sourcing the setup-env.sh (add to your .bashrc to always have spack in your path) |
---|
|
source ${HOME}/spack/share/spack/setup-env.sh |
Code Block |
---|
language | bash |
---|
title | Add compilers to spack |
---|
|
spack compiler add |
Code Block |
---|
language | bash |
---|
title | Find an installed package e.g. numpy |
---|
|
spack find py-numpy |
All python (r) packages have py- (r-) prefix
Code Block |
---|
language | bash |
---|
title | Install a package, for e.g. JupyterLab |
---|
|
spack install py-jupyterlab |
Code Block |
---|
language | bash |
---|
title | If you want the spack built packages to be available for use with module command, modify the module path as follows |
---|
|
export MODULEPATH=${HOME}/spack/share/spack/modules/linux-centos8-x86_64:${MODULEPATH} |
Visit SPACK Website for list of packages that can be built with SPACK.