Skip to content

Configuration

Luca Springer edited this page Nov 8, 2024 · 11 revisions

Squirrel 🐿️

To create the configuration, copy config/squirrel_template.cfg and paste it as squirrel.cfg in the same directory. Some values are set by default, but you must adjust squirrel.cfg to have a working configuration.

InfluxDB

Configures the connection to InfluxDB.

[influxdb]
url = <host>
org = <org>
token = <token>

[influxdb.gci.history]
bucket = <your-bucket>
measurement = electricity_maps
field = carbonIntensity
zone = <your-zone>

[influxdb.gci.forecast]
bucket = <your-bucket>
measurement = forecast
field = carbonIntensity
zone = <your-zone>
  • url: URL to the InfluxDB host, including the port. E.g., <host>:1234.
  • org: InfluxDB organization (workspace for a group of users).
  • token: InfluxDB API token.

The subsections influxdb.gci.history (grid carbon intensity history) and influxdb.gci.forecast (grid carbon intensity forecast) allow for configuration of how your data model for the respective data looks like. When you use the built-in forecasting method, you will need to configure influx.gci.history; otherwise, you will need to configure influx.gci.forecast.

Forecasting

If you don't write forecasting data to InfluxDB, you can use the built-in forecasting based on the historical data from InfluxDB at a slight performance cost. Set use_builtin to False when retrieving the forecast data from InfluxDB. The number of forecasted days and the scheduling scope can also be adjusted here using forecast_days (should be less or equal to available forecasting data when using forecasting data from InfluxDB).

[forecast]
use_builtin = True
forecast_days = 1
[forecast.builtin]
lookback_days = 2

Paths and Slurm Cluster

Configures local paths. viz_path is the directory where Squirrel visualizations will be stored, and schedule is the path to the file where the scheduler state will be persisted. Please make sure that the parent directories exist.

In cluster_json, you can provide a JSON containing the output of scontrol show node --json. This information will be used as Slurm cluster information. The directory src/sim/data provides several exemplary Slurm cluster configurations. If you comment out the path, Squirrel calls the scontrol show node --json command itself.

[local]
viz_path = viz
schedule = schedule.csv
; Comment out cluster_json if you have access to `scontrol show node --json`
cluster_json = src/sim/data/3-node-cluster.json

Slurm Cluster Metainformation 🖥️

To create the configuration, copy config/cluster_info_template.cfgand paste it as cluster_info.cfg in the same directory. The default values are for the simulations. You can adjust cluster_info.cfg at will, depending on your needs.

Add Node Information

The nodes section contains all node-related information.

Tip

Slurm's scontrol show node --json command provides a JSON output where you can see the hostname of each node. See documentation

Subsections for Specific Nodes:

  • Each node is identified by its hostname (e.g., c1, c12, c2, g1), which are used as subsections of nodes (e.g., nodes.c1).
  • Each node has subsections gpus and 'cpus` for GPU and CPU details. So far, we support the specification of CPU and GPU TDPs of a node.
[nodes.g1]
[nodes.g1.cpus]
TDP = 180
[nodes.g1.gpus]
TDP = 400

Examples

The directory src/sim/data provides several configuration examples for the exemplary Slurm cluster configurations.