Source code here

“Everybody has a testing environment. Some people are lucky enough to have a totally separate environment to run production in.”

Stencil (Simulated Testing Environment for Nibble Cluster Infrastructure Lab) is a framework — built entirely around the Infrastructure as Code (IaC) paradigm — which allows to deploy a virtual High-Performance Computing (HPC) cluster that mirrors the design and operational characteristics of production systems.

The aim of the project is to provide a flexible, fully automated, and reproducible setup giving developers and system administrators a safe environment to explore and validate ideas without affecting critical ptoduction infrastructure.

By combining automation, reproducibility, and realism, STENCIL bridges the gap between theoretical testing and production deployment. It empowers teams to iterate faster, validate changes with confidence, and foster innovation in HPC system design and operation. Moreover it serves as an educational tool, allowing students and new users to gain hands-on experience with cluster environments in a controlled setting.

How does Stencil works?

The Stencil framework is built around the three main phases of a cluster lifecycle:

  1. Deployment: Initial setup where all the necessary components, namely virtual machines, networking, and storaged, are created and configured to form the virtual cluster.
  2. Provisioning: All the VMs previously deployed are properly provisioned installing the required software and configurations to make them operational accordingly to their designated roles (e.g., compaute nodes, storage nodes, …).
  3. Usage: Once the cluster is deployed and provisioned, users can interact with it as they would with a real HPC cluster, allowing them to test applications, configurations, and workflows in a safe environment.
Diagram of the main phases of the STENCIL project.
Diagram of the main phases of the STENCIL project.