Park#
- class impactshpc.src.Park(clusters: dict[str, Cluster], embodied_impacts: Impacts | None = None, electric_power: ReplicableValue | str | None = None, peak_power: ReplicableValue | str | None = None, idle_power: ReplicableValue | str | None = None, energy_intensity: EnergyIntensity | None = None, PUE: ReplicableValue | None = None, cooling: Cooling | None = None, batteries: list[Battery] | None = None)
Bases:
HasConsumptionAndEmbodiedImpactsRepresents a park of servers, a datacenter, or an HPC center.
- embodied_impacts
The embodied impacts of the park. If the value is known,
estimate_embodied_impacts()returns it, otherwise an estimation is done based on other attributes. Defaults to None.
- clusters
A dictionary whose keys are names and values are clusters. Clusters are sets of nodes with the same specifications.
- energy_intensity
Energy intensity of the electrical mix of the region where the park is running. This represents the impacts of producing 1 kWh of electricity. Defaults to the average energy intensity of Europe.
- Type:
EnergyIntensity, optional
- PUE
The Power Usage Effectiveness of the park. This value is overridden by the PUE of the cluster if provided. Defaults to the value in the config file under default_values_park > PUE.
- Type:
ReplicableValue, optional
- cooling
An instance of
Coolingrepresenting the cooling system. Only used for embodied impacts; consumption is estimated using the PUE. Defaults to an estimation of the cooling power installed based on the servers’ consumption.- Type:
Cooling | None, optional
- batteries
A list of
Batteryinstances representing the emergency batteries. Defaults to an estimation based on the server consumption and the time to start the emergency power supply (this duration is defined in the config file under default_values_battery > duration).
Methods Summary
Estimate the electric power of the park.
Estimate the static consumption (when 0% workload) of the park.
Estimate the peak consumption (maximum consumption, when maximal workload) of the park.
job_impact(job)Estimate the environmental impact of a job running on this park.
Estimate the consumption of all servers in the park, without accounting for the PUE.
Methods Documentation
- estimate_electric_power() ReplicableValue#
Estimate the electric power of the park.
Sums the servers’ consumption, multiplied by their PUE (the PUE of the cluster if defined, otherwise the park’s PUE).
- Returns:
The estimated instant consumption of the park.
- Return type:
- estimate_embodied_impacts() Impacts#
Estimate the embodied impacts of the park.
If
embodied_impactsis not None, this method only returns it.Otherwise, sums the embodied impacts of the servers in
clusters, thebatteries, and thecooling.- Returns:
The embodied impacts of the park.
- Return type:
Impact
- estimate_idle_power() ReplicableValue#
Estimate the static consumption (when 0% workload) of the park.
Sums the static consumption of the servers, multiplied by their PUE.
- Returns:
The static consumption of the park.
- Return type:
- estimate_peak_power() ReplicableValue#
Estimate the peak consumption (maximum consumption, when maximal workload) of the park.
Sums the servers’ peak consumptions, multiplied by their PUE.
- Returns:
The peak consumption of the park.
- Return type:
- job_impact(job: Job) Impacts#
Estimate the environmental impact of a job running on this park. This takes into account the impact of the electricity consumption of the job, as well as the embodied impact of the park attributed to this job.
This includes:
The Embedded impacts of the servers attributed to the job.
The impacts of electricity consumption of the job, based on
energy_intensity.The Embedded impacts of the batteries, using the
Battery’s allocation method in addition to an allocation based on the proportion of the total consumption of the park that this job’s servers use.The Embedded impacts of the cooling, using the
Cooling’s allocation method in addition to an allocation based on the proportion of the total consumption of the park that this job’s servers use.
- Parameters:
job (Job) – A job running on a cluster of the park. Its cluster must exist in the park.
- Returns:
The total impact of the job.
- Return type:
Impact
- servers_power() ReplicableValue#
Estimate the consumption of all servers in the park, without accounting for the PUE.
- Returns:
The sum of the consumptions of the servers in the park.
- Return type:
- estimate_electric_power() ReplicableValue
Estimate the electric power of the park.
Sums the servers’ consumption, multiplied by their PUE (the PUE of the cluster if defined, otherwise the park’s PUE).
- Returns:
The estimated instant consumption of the park.
- Return type:
- estimate_embodied_impacts() Impacts
Estimate the embodied impacts of the park.
If
embodied_impactsis not None, this method only returns it.Otherwise, sums the embodied impacts of the servers in
clusters, thebatteries, and thecooling.- Returns:
The embodied impacts of the park.
- Return type:
Impact
- estimate_idle_power() ReplicableValue
Estimate the static consumption (when 0% workload) of the park.
Sums the static consumption of the servers, multiplied by their PUE.
- Returns:
The static consumption of the park.
- Return type:
- estimate_peak_power() ReplicableValue
Estimate the peak consumption (maximum consumption, when maximal workload) of the park.
Sums the servers’ peak consumptions, multiplied by their PUE.
- Returns:
The peak consumption of the park.
- Return type:
- job_impact(job: Job) Impacts
Estimate the environmental impact of a job running on this park. This takes into account the impact of the electricity consumption of the job, as well as the embodied impact of the park attributed to this job.
This includes:
The Embedded impacts of the servers attributed to the job.
The impacts of electricity consumption of the job, based on
energy_intensity.The Embedded impacts of the batteries, using the
Battery’s allocation method in addition to an allocation based on the proportion of the total consumption of the park that this job’s servers use.The Embedded impacts of the cooling, using the
Cooling’s allocation method in addition to an allocation based on the proportion of the total consumption of the park that this job’s servers use.
- Parameters:
job (Job) – A job running on a cluster of the park. Its cluster must exist in the park.
- Returns:
The total impact of the job.
- Return type:
Impact
- servers_power() ReplicableValue
Estimate the consumption of all servers in the park, without accounting for the PUE.
- Returns:
The sum of the consumptions of the servers in the park.
- Return type: