Skip to content

Commit

Permalink
Merge pull request #16392 from Renni771/update-carbon-emissions-repor…
Browse files Browse the repository at this point in the history
…ting-methodology-page

Update carbon emissions methodology page to match current feature spe…
  • Loading branch information
bgruening authored Jul 14, 2023
2 parents dd869c6 + c77f3a0 commit a5c3275
Showing 1 changed file with 27 additions and 26 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { worldwideCarbonIntensity, worldwidePowerUsageEffectiveness } from "./carbonEmissionConstants.js";
import Abbreviation from "@/components/Common/Abbreviation.vue";
import Heading from "@/components/Common/Heading.vue";
import ExternalLink from "@/components/ExternalLink.vue";
Expand Down Expand Up @@ -39,7 +41,7 @@ const greenAlgorithmsUrl = "https://www.green-algorithms.org/";
<Heading h1 separator bold size="lg">Carbon Emissions Calculations</Heading>

<p>
Our calculations are based off of the work of the
Our calculations are based off of work done by the
<ExternalLink :href="greenAlgorithmsUrl">Green Algorithms Project</ExternalLink>
and in particular their implementation of the "carbon footprint calculator".

Expand All @@ -58,31 +60,28 @@ const greenAlgorithmsUrl = "https://www.green-algorithms.org/";
to it (in MB). Additionally, we require information about the CPU model of the server that ran the job.
In particular, we consider the CPU
<Abbreviation :explanation="'Thermal Design Power'">TDP</Abbreviation>, its core count and the number of
those cores allocated to the job. We assume a real core usage factor of 1.0, meaning that that 100% of
each allocated core's resources are used. Given that CPU specifications can vary greatly and that we
cannot always assume this information is provided, we have two approaches:
cores allocated to the job. We assume that 100% of each allocated core's resources are used.
</p>

<ol>
<li>In the case that the server's CPU specifications are known, we proceed as normal.</li>
<li>
When no information is provided, we estimate the server's configuration by matching your job's CPU
and/or memory usage to a comparable general purpose
<Abbreviation :explanation="'Amazon Web Services Elastic Compute Cloud'">AWS EC2</Abbreviation>
instance. EC2 was chosen because its service provides numerous server configurations allowing us to
cover more real-world situations.
<ExternalLink :href="'https://aws.amazon.com/ec2/instance-types/'">
(Click here to read further about general purpose EC2 machines)
</ExternalLink>
</li>
</ol>
<p>
Given that CPU specifications can vary greatly and that Galaxy does not support fetching this
information dynamically, we estimate the server's hardware configuration by matching your job's CPU
and/or memory usage to a comparable general purpose
<Abbreviation :explanation="'Amazon Web Services Elastic Compute Cloud'">AWS EC2</Abbreviation>
instance. EC2 was chosen because the service provides various hardware configurations allowing us to
cover more real-world situations.
<ExternalLink :href="'https://aws.amazon.com/ec2/instance-types/'">
(Click here to read further about general purpose EC2 machines)
</ExternalLink>
</p>

<p>
Once we have the information needed, we calculate the power usage of the CPU and memory in watts. For
each component, the respective power usage is the product of the amount of allocated resources, a
Once we have the information needed, we calculate your job's CPU and memory power usage in watts. The
power usage is the product of allocated resources amount, a
<Abbreviation :explanation="'Power Usage Effectiveness'">PUE</Abbreviation> value and a power usage
factor. For CPUs power usage factor is the TDP (normalized to TDP-per-core) and for memory we use an
average memory power draw constant of 0.375 W/GiB.
factor. For CPUs, the power usage factor is its TDP per core and, for memory, we use a reference of
0.375 W/GiB from the "carbon footprint calculator". Administrators can set a custom PUE value, otherwise
a default PUE value of {{ worldwidePowerUsageEffectiveness }} is used.
</p>

<pre>
Expand All @@ -107,7 +106,9 @@ const greenAlgorithmsUrl = "https://www.green-algorithms.org/";

<p>
Finally, we convert the energy usage into estimated carbon emissions (in metric units CO2e) by
multiplying the carbon intensity of the server location:
multiplying the carbon intensity value corresponding to the geographical server location configured by
administrators. If no value was set or the location is not supported, the calculation uses a global
average carbon intensity value of {{ worldwideCarbonIntensity }} gCO2/kWh.
</p>

<pre>
Expand All @@ -121,10 +122,10 @@ const greenAlgorithmsUrl = "https://www.green-algorithms.org/";
<Heading h2 separator bold size="sm">How we compare carbon emissions</Heading>

<p>
We compare the total carbon emissions of your job (per metric unit of CO2e) with
<ExternalLink :href="epaCalculationsUrl">carbon emission estimates calculated by the EPA</ExternalLink>.
When calculating the equivalent distance driven, we use the same reference values from the Green
Algorithms Project's "Carbon emissions Calculator" tool.
To make the estimates more relatable, we compare your job's carbon emissions and energy usage to
<ExternalLink :href="epaCalculationsUrl">values calculated by the EPA</ExternalLink>. We use the same
reference values from the Green Algorithms Project's "Carbon emissions Calculator" tool when calculating
the equivalent distance driven.
</p>

<pre>
Expand Down

0 comments on commit a5c3275

Please sign in to comment.