Server#
- class impactshpc.src.Server(embodied_impacts: ~impactshpc.src.core.impacts.Impacts | None = None, components: ~typing.List[~typing.Tuple[Component, int]] = [], case: ~impactshpc.src.other_components.Case = <impactshpc.src.other_components.Case object>, allocation_method: AllocationMethod | None = None, usage_rate: ~impactshpc.src.core.ReplicableValue.ReplicableValue | None = None)
Bases:
HasConsumptionAndEmbodiedImpactsRepresents a Server / Node and is used to compute its impacts.
- embodied_impacts
The embodied impacts of the server. If the value is known,
estimate_embodied_impacts()returns it, otherwise an estimation is done based on other attributes. Defaults to None.
- components
A list of the
Componentinstances that represent the electronic components of the server, along with the number of each component in the server. Defaults to [].- Type:
List[Tuple[Component, int]], optional
- allocation_method
An allocation method for the server. Defaults to
naive_allocation()for the default lifetime of a server, defined in the config file under default_values_server > lifetime.- Type:
AllocationMethod | None, optional
- usage_rate
The usage rate of the server, between 0 and 1. Defaults to the value defined in the config file under default_values_server > usage_rate.
- Type:
ReplicableValue | None, optional
Example:#
Server( components=[ (CPU(name=ExactName("Intel Xeon Gold 6132")), 2), (RAM(size=SourcedValue(name="ram_size", value="3 TB", source="User Input")), 1), (GPU(name=find_close_gpu_model_name("Nvidia Tesla V100")), 4), # In the spec, we don't know the exact variant of Nvidia V100 used, so we can use find_close_gpu_model_name result and it will average the matching GPUs (MotherBoard(), 1), ] )This represents a server with two Intel Xeon Gold 6132 CPUs, three terabytes of RAM, four Nvidia Tesla V100 GPUs, and a motherboard.
Methods Summary
Estimate the electric power of the server.
estimate_embedded_impacts(job_duration)Estimate the Embedded impacts of the server for the job.
Estimate the idle power of the server.
Estimate the peak power of the server.
Methods Documentation
- estimate_electric_power() ReplicableValue#
Estimate the electric power of the server.
The server’s instant consumption is the sum of its components’ power consumptions.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The electric power of the server.
- Return type:
- estimate_embedded_impacts(job_duration: ReplicableValue) Impacts#
Estimate the Embedded impacts of the server for the job.
Internally uses
estimate_embodied_impacts()and passes it theallocation_methodwith thejob_duration.- Parameters:
job_duration (ReplicableValue) – The duration of the job we want to allocate the embodied impacts to.
- Returns:
The Embedded impacts of the server for the job.
- Return type:
Impact
- estimate_embodied_impacts() Impacts#
Estimate the embodied impacts of the server.
The server’s embodied impacts are the sum of its components’ embodied impacts.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ impacts are considered positively correlated (correlation = 1) with other CPUs’ impacts, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated impacts is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The embodied impacts of the server.
- Return type:
Impact
- estimate_idle_power() ReplicableValue#
Estimate the idle power of the server.
The server’s static consumption is the sum of its components’ power consumptions at idle.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The idle power of the server.
- Return type:
- estimate_peak_power() ReplicableValue#
Estimate the peak power of the server.
The server’s peak consumption is the sum of its components’ peak power consumptions.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The peak power of the server.
- Return type:
- estimate_electric_power() ReplicableValue
Estimate the electric power of the server.
The server’s instant consumption is the sum of its components’ power consumptions.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The electric power of the server.
- Return type:
- estimate_embedded_impacts(job_duration: ReplicableValue) Impacts
Estimate the Embedded impacts of the server for the job.
Internally uses
estimate_embodied_impacts()and passes it theallocation_methodwith thejob_duration.- Parameters:
job_duration (ReplicableValue) – The duration of the job we want to allocate the embodied impacts to.
- Returns:
The Embedded impacts of the server for the job.
- Return type:
Impact
- estimate_embodied_impacts() Impacts
Estimate the embodied impacts of the server.
The server’s embodied impacts are the sum of its components’ embodied impacts.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ impacts are considered positively correlated (correlation = 1) with other CPUs’ impacts, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated impacts is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The embodied impacts of the server.
- Return type:
Impact
- estimate_idle_power() ReplicableValue
Estimate the idle power of the server.
The server’s static consumption is the sum of its components’ power consumptions at idle.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The idle power of the server.
- Return type:
- estimate_peak_power() ReplicableValue
Estimate the peak power of the server.
The server’s peak consumption is the sum of its components’ peak power consumptions.
For Uncertainties, the sum of the components of the same type is done in dependent mode, i.e., CPUs’ consumptions are considered positively correlated (correlation = 1) with other CPUs’ consumptions, RAM sticks are correlated with other RAM sticks, etc.
The final sum of each group of the correlated consumptions is done in independent mode, i.e., they are considered uncorrelated (correlation = 0).
- Returns:
The peak power of the server.
- Return type: