1. Home
  2. General
  3. How do I use Spack on my Bright cluster?

How do I use Spack on my Bright cluster?

Bright Cluster Manager provides a good selection of ready-to-use libraries and tools that are commonly used in a high performance computing environment. It may happen that you need a tool or library for which Bright does not provide a package. Spack is a package manager that can be of use in such situations. Spack provides access to thousands of packages that can be built on your cluster on the fly from Spack package file.

Here is how you install the Spack tool itself on a head node of a RHEL/CentOS based Bright cluster:

# yum install git 
# git clone https://github.com/spack/spack /cm/shared/apps/spack

Then create a file /etc/profile.d/z-spack.sh on the head node, as well as in all relevant software images (e.g. /cm/images/default-image/etc/profile.d/z-spack.sh), with the following contents:

export SPACK_ROOT=/cm/shared/apps/spack
. ${SPACK_ROOT}/share/spack/setup-env.sh

For csh/tcsh support, also create /etc/profile.d/z-spack.csh with the following contents:

set SPACK_ROOT=/cm/shared/apps/spack
source $SPACK_ROOT/share/spack/setup-env.csh

After logging out and logging back in, you should be able to issue commands such as:

# spack list
# spack install mpich
# spack find

Spack integrates with environment modules and LMod. To use installed Spack packages, a user may use the standard module commands. Example:

[cmsupport@mdv-spack ~]$ module av
--------------------------- /cm/shared/apps/spack/share/spack/modules/linux-centos8-skylake_avx512 ---------------------------
autoconf-2.69-gcc-8.3.1-cmmtsf4        libpciaccess-0.16-gcc-8.3.1-t3yxjbl  perl-5.30.3-gcc-8.3.1-5ug3nux         
automake-1.16.2-gcc-8.3.1-z4v457g      libsigsegv-2.12-gcc-8.3.1-3bmwjvv    pkgconf-1.7.3-gcc-8.3.1-anfy6rk       
berkeley-db-18.1.40-gcc-8.3.1-px3gfxk  libtool-2.4.6-gcc-8.3.1-xxp3u7a      readline-8.0-gcc-8.3.1-2pmmp6d        
findutils-4.6.0-gcc-8.3.1-sfl35co      libxml2-2.9.10-gcc-8.3.1-rhrpcik     texinfo-6.5-gcc-8.3.1-c7gwzuk         
gdbm-1.18.1-gcc-8.3.1-xmpiec5          m4-1.4.18-gcc-8.3.1-soqewat          util-macros-1.19.1-gcc-8.3.1-yllmpac  
hwloc-2.2.0-gcc-8.3.1-bx7lrwp          mpich-3.3.2-gcc-8.3.1-uc62klj        xz-5.2.5-gcc-8.3.1-vsch6yy            
libiconv-1.16-gcc-8.3.1-xztbayv        ncurses-6.2-gcc-8.3.1-hwvxfz3        zlib-1.2.11-gcc-8.3.1-gqxf26r         

--------------------------------------------------- /cm/local/modulefiles ----------------------------------------------------
cluster-tools/master      cmd    freeipmi/1.6.6   luajit        null      shared               
cm-image/master           cmjob  gcc/10.2.0       mariadb-libs  openldap  slurm/slurm/19.05.7  
cm-scale/cm-scale.module  cmsh   ipmitool/1.8.18  module-git    python3   
cm-setup/master           dot    lua/5.4.0        module-info   python37  

--------------------------------------------------- /cm/shared/modulefiles ---------------------------------------------------
blacs/openmpi/gcc/64/1.1patch03  gdb/9.2                          intel-tbb-oss/intel64/2020.3  netperf/2.7.0               
blas/gcc/64/3.8.0                globalarrays/openmpi/gcc/64/5.7  iozone/3_490                  openblas/dynamic/(default)  
bonnie++/1.98                    hdf5/1.10.1                      lapack/gcc/64/3.9.0           openblas/dynamic/0.3.7      
cm-pmix3/3.1.4                   hdf5_18/1.8.21                   mpich/ge/gcc/64/3.3.2         openmpi/gcc/64/1.10.7       
default-environment              hwloc/1.11.11                    mvapich2/gcc/64/2.3.4         ucx/1.8.1                   
fftw3/openmpi/gcc/64/3.3.8       intel-tbb-oss/ia32/2020.3        netcdf/gcc/64/gcc/64/4.7.3    
[cmsupport@mdv-spack ~]$ module load `spack module tcl find mpich`
[cmsupport@mdv-spack ~]$ which mpirun
/cm/shared/apps/spack/opt/spack/linux-centos8-skylake_avx512/gcc-8.3.1/mpich-3.3.2-uc62kljhfi7b342iehig3cchbctxeqxx/bin/mpirun
[cmsupport@mdv-spack ~]$ 

In the setup described above, administrators are responsible for installing Spack packages, which can then be used by end-users. It is also possible for users to install Spack packages outside of the /cm/shared tree. For more information about Spack, please consult the Spack documentation.

Updated on September 28, 2020

Related Articles

Leave a Comment