Park#
- class impacthpc.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:
HasConsumptionAndEmbodiedImpacts
Represents 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
Cooling
representing 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
Battery
instances 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
job_impact
(job)Estimate the environmental impact of a job running on this park.
Methods Documentation
- 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
- 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_impacts
is 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: