Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update explain feature #118

Merged
merged 2 commits into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions docs/major-concepts/manifest-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,27 +161,24 @@ This section is autogenerated at runtime. It is a list of all the parameter meta

```yaml
explain:
carbon:
plugins:
- sci
sci:
inputs:
carbon:
unit: gCO2eq
description: >-
total carbon emissions attributed to an application's usage as the sum
of embodied and operational carbon
aggregation-method:
time: sum
component: sum
requests:
plugins:
- sci
requests:
unit: requests
description: number of requests made to application in the given timestep
aggregation-method:
time: sum
component: sum
sci:
plugins:
- sci
outputs:
sci:
unit: gCO2eq/request
description: >-
software carbon intensity expressed as a rate of carbon emission per
Expand Down
224 changes: 115 additions & 109 deletions docs/users/how-to-use-the-explain-feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,116 +239,122 @@ When we execute this manifest, the following `explain` block is added to the out

```yaml
explain:
vCPUs:
plugins:
- sci-embodied
unit: CPUs
description: number of CPUs allocated to an application
aggregation-method:
time: copy
component: copy
memory:
plugins:
- sci-embodied
unit: GB
description: RAM available for a resource, in GB
aggregation-method:
time: copy
component: copy
ssd:
plugins:
- sci-embodied
unit: SSDs
description: number of SSDs available for a resource
aggregation-method:
time: copy
component: copy
hdd:
plugins:
- sci-embodied
unit: HDDs
description: number of HDDs available for a resource
aggregation-method:
time: copy
component: copy
gpu:
plugins:
- sci-embodied
unit: GPUs
description: number of GPUs available for a resource
aggregation-method:
time: copy
component: copy
usage-ratio:
plugins:
- sci-embodied
unit: dimensionless
description: >-
a scaling factor that can be used to describe the ratio of actual resource
usage comapred to real device usage, e.g. 0.25 if you are using 2 out of 8
vCPUs, 0.1 if you are responsible for 1 out of 10 GB of storage, etc
aggregation-method:
time: copy
component: copy
time:
plugins:
- sci-embodied
unit: seconds
description: >-
a time unit to scale the embodied carbon by, in seconds. If not
provided,time defaults to the value of the timestep duration.
aggregation-method:
time: copy
component: copy
embodied-carbon:
plugins:
- sci-embodied
- sum-carbon
unit: gCO2eq
description: >-
carbon emitted during the production, distribution and disposal of a
hardware component, scaled by the fraction of the component's lifespan
being allocated to the application under investigation
aggregation-method:
time: sum
component: sum
carbon-operational:
plugins:
- sum-carbon
unit: gCO2eq
description: carbon emitted due to an application's execution
aggregation-method:
time: sum
component: sum
carbon:
plugins:
- sum-carbon
- sci
unit: gCO2eq
description: >-
total carbon emissions attributed to an application's usage as the sum of
embodied and operational carbon
aggregation-method:
time: sum
component: sum
requests:
plugins:
- sci
unit: requests
description: number of requests made to application in the given timestep
aggregation-method:
time: sum
component: sum
sci-embodied:
inputs:
vCPUs:
description: number of CPUs allocated to an application
unit: CPUs
aggregation-method:
time: copy
component: copy
memory:
description: RAM available for a resource, in GB
unit: GB
aggregation-method:
time: copy
component: copy
ssd:
description: number of SSDs available for a resource
unit: SSDs
aggregation-method:
time: copy
component: copy
hdd:
description: number of HDDs available for a resource
unit: HDDs
aggregation-method:
time: copy
component: copy
gpu:
description: number of GPUs available for a resource
unit: GPUs
aggregation-method:
time: copy
component: copy
usage-ratio:
description: >-
a scaling factor that can be used to describe the ratio of actual
resource usage comapred to real device usage, e.g. 0.25 if you are
using 2 out of 8 vCPUs, 0.1 if you are responsible for 1 out of 10 GB
of storage, etc
unit: dimensionless
aggregation-method:
time: copy
component: copy
time:
description: >-
a time unit to scale the embodied carbon by, in seconds. If not
provided,time defaults to the value of the timestep duration.
unit: seconds
aggregation-method:
time: copy
component: copy
outputs:
embodied-carbon:
description: embodied carbon for a resource, scaled by usage
unit: gCO2eq
aggregation-method:
time: sum
component: sum
sum-carbon:
inputs:
carbon-operational:
unit: gCO2eq
description: carbon emitted due to an application's execution
aggregation-method:
time: sum
component: sum
embodied-carbon:
unit: gCO2eq
description: >-
carbon emitted during the production, distribution and disposal of a
hardware component, scaled by the fraction of the component's lifespan
being allocated to the application under investigation
aggregation-method:
time: sum
component: sum
outputs:
carbon:
unit: gCO2eq
description: >-
total carbon emissions attributed to an application's usage as the sum
of embodied and operational carbon
aggregation-method:
time: sum
component: sum
sci:
plugins:
- sci
unit: gCO2eq/request
description: >-
software carbon intensity expressed as a rate of carbon emission per
request
aggregation-method:
time: sum
component: sum
inputs:
carbon:
unit: gCO2eq
description: >-
total carbon emissions attributed to an application's usage as the sum
of embodied and operational carbon
aggregation-method:
time: sum
component: sum
functional-unit:
description: >-
the name of the functional unit in which the final SCI value should be
expressed, e.g. requests, users
unit: none
aggregation-method:
time: sum
component: sum
requests:
unit: requests
description: number of requests made to application in the given timestep
aggregation-method:
time: sum
component: sum
outputs:
sci:
unit: gCO2eq/request
description: >-
software carbon intensity expressed as a rate of carbon emission per
request
aggregation-method:
time: sum
component: sum
```

## When _not_ to use `explainer`
Expand Down
6 changes: 3 additions & 3 deletions docs/users/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sidebar_position: 3

# Users

This section contains information for Impact Framework users. You are a user if you want to apply the Impact Framework to your own use-case, such as using it to measure the environmental impact of your own apps running on some cloud platform.
This section contains information for Impact Framework users. You are a user if you want to apply the Impact Framework to your own use-case, such as using it to measure the environmental impact of your own apps running on some cloud platform.

The user documentation includes:

Expand All @@ -14,7 +14,7 @@ The user documentation includes:
- [How to write manifest files](./how-to-write-manifests.md)
- [How to export CSV file with `if-csv`](./how-to-export-csv-file-with-if-csv.md)
- [How to compare files with `if-diff`](./how-to-compare-files-with-if-diff.md)
- [How to check parameters and units using `explain`](./using-the-explain-feature.md)
- [How to check parameters and units using `explain`](./how-to-use-the-explain-feature.md)
- [How to verify manifest files with `if-check`](./how-to-verify-files-with-if-check.md)

If you are looking for guidance for how to *change or update* the Impact Framework by adding new features, fixing bugs or building new plugins, you should go to our [`developers` documentation](../developers/) instead.
If you are looking for guidance for how to _change or update_ the Impact Framework by adding new features, fixing bugs or building new plugins, you should go to our [`developers` documentation](../developers/) instead.