Excerpt |
---|
Pawsey provides and maintains a number of prebuilt libraries and applications on Setonix, most of which are installed and managed through Spack. This page outlines how users can use Spack to install additional software or different builds of existing software that are not provided by Pawsey supported modules. |
...
Column |
---|
|
Code Block |
---|
language | bash |
---|
theme | Emacs |
---|
title | Terminal 5: spack install with variants and dependencies |
---|
| $ # install using specific version of fftw
$ spack spec namd@2.12 ~cuda fftw=3 interface=python ^fftw@3.3.4 +mpi +openmp +pfft_patches ^mpich@3.4.1
Input spec
--------------------------------
namd@2.12~cuda fftw=3 interface=python
^fftw@3.3.4+mpi+openmp+pfft_patches
Concretized
--------------------------------
namd@2.12%gcc@11.2.0~cuda cuda_arch=none fftw=3 interface=python arch=linux-sles15-zen3
^charmpp@6.7.1%gcc@11.2.0~cuda~omp~papi+production~pthreads+shared+smp~syncft~tcp~tracing backend=netlrts build-target=LIBS patches=92d507d8b72ac01f114f7772510049cc7656f93daeadef46e1f2b00ad8533d2b,e636c3f88a6944c87d910d4c8fdf25146b60f57e09228497a6cc01c7dbae9569 pmi=none arch=linux-sles15-zen3
^fftw@3.3.4%gcc@11.2.0+mpi+openmp+pfft_patches patches=4c813199aa39c0d2b23259ee3c3a58c9c96a3c0d09fe3485a33f299b95e0d9e7 precision=double,float arch=linux-sles15-zen3
^autoconf@2.69%gcc@11.2.0 arch=linux-sles15-zen3
^automake@1.15.1%gcc@11.2.0 arch=linux-sles15-zen3
^libtool@2.4.6%gcc@11.2.0 arch=linux-sles15-zen3
^mpich@3.4.1%gcc@11.2.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio+slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-sles15-zen3
^python@3.6.13%gcc@11.2.0+bz2+ctypes+dbm~debug+libxml2+lzma+nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib arch=linux-sles15-zen3
^tcl@8.6.11%gcc@11.2.0 arch=linux-sles15-zen3
^zlib@1.2.11%gcc@11.2.0+optimize+pic+shared arch=linux-sles15-zen3
$ # the spec looks okay, let's install it
$ sg <projectcode> -c 'spack install namd@2.12 ~cuda fftw=3 interface=python ^fftw@3.3.4 +mpi +openmp +pfft_patches' |
Note |
---|
Spack would normally download the source code for any packages that it needs to install. The source code for NAMD has a particular restriction that it cannot be downloaded by spack but must be obtained separately: Column |
---|
|
Code Block |
---|
language | bash |
---|
theme | Emacs |
---|
title | Terminal 6: namd install issue |
---|
| $ sg <projectcode> -c 'spack install namd@2.12 ~cuda fftw=3 interface=python ^fftw@3.3.4 +mpi +openmp +pfft_patches'
...
==> Installing namd-2.12-tey6bdfijoegx3dkxfc553nckfecmhku
==> No binary for namd-2.12-tey6bdfijoegx3dkxfc553nckfecmhku found: installing from source
...
==> Error: FetchError: Manual download is required for namd. Refer to http://www.ks.uiuc.edu/Research/namd/ for download instructions.
|
|
This can be addressed by first manually downloading the source tarball into your current directory where spack will detect it. |
|
Install a package for the entire project team
...
The load/unload
command provides a simple fashion of updating the PATH
environment variable to include software built software built by Spack. You can investigate the installed software using the find
subcommand and then use the load
command once you have identified the software to use. If several different versions of the package have been built by Spack, you will need to specify the desired spec. You can investigate the installed software using the find
subcommand.:
Column |
---|
|
Code Block |
---|
language | bash |
---|
theme | Emacs |
---|
title | Terminal 7: spack find and load example |
---|
| $ spack find -vd fftw # list the variants and dependencies of fftw
-- linux-sles15-zen3 / gcc@11.2.0 -----------------------------
fftw@3.3.7~mpi~openmp~pfft_patches precision=double,float
fftw@3.3.7~mpi+openmp~pfft_patches precision=double,float
fftw@3.3.8~mpi~openmp~pfft_patches precision=double,float
$ spack load --sh fftw # try loading any fftw
==> Error: fftw matches multiple packages.
Matching packages:
m4vsnhq fftw@3.3.7%gcc@11.2.0 arch=linux-sles15-zen3
ax6d2kl fftw@3.3.7%gcc@11.2.0 arch=linux-sles15-zen3
7mlxv4g fftw@3.3.8%gcc@11.2.0 arch=linux-sles15-zen3
Use a more specific spec.
$ spack load --sh fftw@3.3.7 # try loading a specific version
==> Error: fftw@3.3.7 matches multiple packages.
Matching packages:
m4vsnhq fftw@3.3.7%gcc@11.2.0 arch=linux-sles15-zen3
ax6d2kl fftw@3.3.7%gcc@11.2.0 arch=linux-sles15-zen3
Use a more specific spec.
$ spack load --sh fftw@3.3.7+openmp # load the version and variant that uniquely identifies the package |
|
...