Skip to content

Elliot-Ayliffe/GRACE-HPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GRACE-HPC logo

Docs Status PyPI - Version

GRACE-HPC

Green Resource for Assessing Carbon & Energy in HPC

gracehpc is a lightweight Python package designed to enable users and operators of SLURM-based HPC systems to estimate and analyse the carbon footprint of their computational workloads. It calculates and displays energy consumption, Scope 2 (operational) and Scope 3 (embodied) carbon emissions for your jobs ran on the system, using SLURM accounting logs and user-specified parameters.

Note: To install and use this package, you ideally must have access to Isambard 3 or Isambard-AI as it has only been tested on these systems at these early stages. The package has been designed to work on any HPC system that uses SLURM as a workload manager, however, you may encounter some issues on other systems due to varying SLURM configurations.

Documentation

For a complete guide to the methodology, installation, and usage of GRACE-HPC, please visit the Official Documentation here.

How to use it?

The package prioritises user experience, accessibility, and flexibility by offering three usage modes designed to accommodate a wide range of users.

  1. Command-line Interface

The tool can be used directly from the command line of your HPC system with simple commands and a wide range of arguments. Ideal for quick analyses for users more comfortable with a lower-level interface and output.

  1. Python Function Call

The same core engine can be called via a function in a Python Script (.py) or a Jupyter Notebook (.ipynb). This mode is ideal for workflow integration and automation, allowing the tool to be embedded into larger Python applications. It also returns the raw datasets produced by the tool for further exploration and user-led analysis afterwards. If you want flexibility, this is the mode for you.

  1. Interactive Jupyter Interface

A simple, widget-based interface can be launched from a Jupyter Notebook (.ipynb) displaying a rich output containing HTML text boxes and interactive plots. This mode allows users to experiment with different parameters without any coding, visualising interesting plots instantly within a single .ipynb notebook. Ideal for users wanting a higher-level, interactive experience.

Key Features

  • Flexible Job Selection: Specify a date range to process jobs for, individual Job IDs, or both.

  • Job Log Extraction: Extracts and processes job details (such as runtime, resource allocation, and usage) using SLURM's sacct command.

  • Energy Consumption: Calculates energy consumption using both usage data and system energy counters (if available).


  • Scope 3 Emissions: Includes Scope 3 (embodied) emissions estimates for a few HPC systems that have undergone a lifecycle assessment and calculated a per node-hour scope 3 emissions factor (Isambard 3, Isambard-AI, Archer 2).

  • Contextual Equivalents: Results include CO₂e equivalents such as miles driven, tree-months and flying to help users interpret and understand the scale of the environmental impact.

  • Rich Output Options: View results in the terminal, export to CSV, load as DataFrames, or display interactively in notebooks with instant plots.

The overall goal of this tool is not to serve as a definitive energy and carbon cluster monitoring tool, but rather to provide accessible estimates that inform and raise awareness about the environmental impact of HPC workloads - promoting more sustainable, carbon-aware practices.

About

Python package for estimating the carbon footprint of jobs run on high-performance computing (HPC) clusters.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published