Spack-based installer and environment manager for ICESEE and its scientific dependencies (MPI, PETSc, HDF5, Python, etc.), designed for HPC clusters.
This repository provides: - A reproducible Spack environment - Automated OpenMPI bootstrapping (if system MPI is unavailable) - Optional ISSM, Firedrake, and Icepack integration - Clean separation between Spack-managed and pip-only Python dependencies
git clone --recurse-submodules https://github.com/ICESEE-project/ICESEE-Spack.git
cd ICESEE-Spack
SLURM_DIR=/opt/slurm/current PMIX_DIR=/opt/pmix/5.0.1 \
./scripts/install.shNote: Adjust SLURM_DIR and PMIX_DIR to match your system if needed.
After installation, activate the environment:
source scripts/activate.shInstalls: - ICESEE (from pinned submodule) - Python (via Spack) - PETSc (Spack-managed) - MPI-enabled HDF5 + h5py - OpenMPI (external or auto-built) - pip-only Python dependencies from ICESEE/pyproject.toml
./scripts/install.shBuilds ISSM and uses: - External OpenMPI - Its own internally built PETSc
Requires MATLAB available on the cluster.
SLURM_DIR=/opt/slurm/current PMIX_DIR=/opt/pmix/5.0.1 ./scripts/install.sh --with-issmInstalls Firedrake using: - PETSc built via Spack - MPI built via Spack
SLURM_DIR=/opt/slurm/current PMIX_DIR=/opt/pmix/5.0.1 ./scripts/install.sh --with-firedrakeInstalls: - Firedrake - Icepack (depends on Firedrake)
SLURM_DIR=/opt/slurm/current PMIX_DIR=/opt/pmix/5.0.1 ./scripts/install.sh --with-icepackThe environment is activated by sourcing:
source scripts/activate.shThis ensures: - Spack environment is active - Correct Python is selected - Correct MPI (matching PETSc) is used - ISSM environment (if installed) is loaded
Run basic tests:
./scripts/test.shIf ISSM is installed:
./scripts/test_issm.sh- Always activate the environment before running ICESEE.
- Ensure MPI used for Firedrake matches MPI used to build PETSc.
For issues or contributions, contact me via: briankyanjo@u.boisestate.edu