Spack

Spack es un administrador de paquetes multiplataforma que simplifica la instalación y personalización del stack de software para HCP. Es una forma muy simple en gestionar muchas dependencias.

Instalación spack

git clone -c feature.manyFiles=true https://github.com/spack/spack.git

Para agregar la ruta de spack a las variables del entorno del usuario

share/spack/setup-env.sh

Para mostrar los paquetes disponibles

spack list

Se pueden utilizar comodines '*' para filtrar el listado.

spack list 'py-*'

Para instalar paquetes

spack install <nombre_de_paquete>

Para especificar el compilador. Se debe utilizar el carácter % para identificar el compilador.

spack install mpileaks@1.1.2 %gcc@4.7.3

Opciones de compilador

spack install mpileaks@1.1.2 %gcc@4.7.3 debug=True

spack install mpileaks@1.1.2 %gcc@4.7.3 +debug

Flags de compilador

spack install mpileaks@1.1.2 %gcc@4.7.3 cppflags=“-O3 -floop-block”

Elegir microarquitectura

spack install mpileaks@1.1.2 target=icelake

Customizar dependencias, se utiliza el caracter '^'. Por ejemplo el paquete hdf5 depende de openmpi e indirectamente hwloc.

spack install hdf5@1.10.1 %gcc@4.7.3 +debug ^openmpi+cuda fabrics=auto ^hwloc+gl