MPI+Spack Bare Metal Cluster
Go to Horizon to
launch at CHI@UC
Go to Horizon to
launch at CHI@TACC
Description
This template sets up an HPC cluster with master and worker nodes, with MPI (MPICH and OpenMPI) and Spack available. A temporary bootstrap node handles the setup and configuration, and the users can load MPI or install/load other packages using Spack or Lmod(Lua Modules).
This appliance accepts the following parameters:
- reservation_id: ID of the Blazar reservation for master and worker nodes.
- bootstrapnode_reservation_id: ID of the Blazar reservation for the bootstrap node.
- network_name: Name of the network.
- image_name: Name of the image to be used by the cluster. Must be one of the following: Ubuntu22.04-HPC-MPI-Spack, Ubuntu22.04-HPC-MPI-Spack-CUDA, or Ubuntu22.04-HPC-MPI-Spack-ROCm. Defaults to Ubuntu22.04-HPC-MPI-Spack.
- worker_count: Number of worker nodes. Defaults to 1.
- spack_packages: List of additional Spack packages to install.
- private_key_content: Contents of the SSH private key.
- public_key_content: Contents of the SSH public key, allowing login into instances.
The following outputs are provided:
- master_ip: Floating IP of the master node.
- keypair_name: Name of the MPI keypair used.
You can create the stack using the following OpenStack CLI command:
SSH_KEY=/work/.ssh/id_rsa # Path to the SSH key file that will be used as the cluster's keypair
STACK_NAME=mpi-stack
NETWORK_NAME=sharednet1
IMAGE_NAME=Ubuntu22.04-HPC-MPI-Spack
RESERVATION_ID="" # Enter the reservation id
BOOTSTRAP_RESERVATION_ID="" # Enter the bootstrap reservation id
WORKER_COUNT=1 # Number of worker nodes
SPACK_PACKAGES="pdsh,zlib" # Comma-separated list of extra spack packages to be installed on all nodes
# Create the stack
openstack stack create ${STACK_NAME} -t template.yml --wait \
--parameter-file private_key_content=${SSH_KEY} \
--parameter-file public_key_content=${SSH_KEY}.pub \
--parameter network_name=${NETWORK_NAME} \
--parameter image_name=${IMAGE_NAME} \
--parameter bootstrapnode_reservation_id=${BOOTSTRAP_RESERVATION_ID} \
--parameter reservation_id=${RESERVATION_ID} \
--parameter worker_count=${WORKER_COUNT} \
--parameter spack_packages=${SPACK_PACKAGES}
Keywords
ansible MPI MPICH openmpiTemplate
Author
Name: | Rohan Babbar |
Contact: | rohanbabbar0408@gmail.com |
Support
Name: | Rohan Babbar |
Contact: | rohanbabbar0408@gmail.com |
Version: | 1.0.0 |
Created By: | rohanbabbar0408@gmail.com on Aug. 23, 2025, 1:40 p.m. |
Updated By: | rohanbabbar0408@gmail.com on Sept. 12, 2025, 3:07 p.m. |