Carbon
Estimates carbon emissions of compute jobs run on high-performance computing clusters.
Install / Use
/learn @ImperialCollegeLondon/CarbonREADME
carbon
Estimates carbon emissions of compute jobs run on high-performance computing clusters.
The tool estimates the energy consumption of a job using information gathered from the workload scheduler. Since it has been developed for use at Imperial College London, it is currently set up to communicate with the scheduler in use on Imperial's clusters, PBS Professional v2024.1. However, the structure of the code has been designed with the view of potential extension for use on other clusters and with other workload schedulers.
By default, the tool requires an internet connection in order to request data from the NESO's carbon intensity API.
If required, this request can be skipped in favour of a configurable carbon intensity value using the --average-intensity flag.
For developers
This is a Python application that uses uv for packaging and dependency management. It also provides pre-commit hooks for various linters and formatters and automated tests using pytest and GitHub Actions. Pre-commit hooks are automatically kept updated with a dedicated GitHub Action.
To get started:
-
Download and install uv following the instructions for your OS.
-
Clone this repository and make it your working directory
-
Set up the virtual environment:
uv sync -
Install the git hooks:
uv run pre-commit install -
Activate the virtual environment (alternatively, you can prefix any Python-related command with
uv run):source .venv/bin/activate -
Specify the location of your cluster configuration file:
export CARBON_CONFIG=/path/to/config.yaml -
Run the main app:
carbon <job ID>
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
