v1.0.0
v1.0.0
New features
- Add new end-user devices from Base Empreinte
- Add PEF impacts criteria
- Add IoT device impacts
- Add min/max values depending on user input completeness
- Add warnings
- Improvement of the completion process from CPU name
- Adding around 2000 CPUs for completion
- Adding utils routers (list available data for string fields, archetypes routers, etc.)
- Users can now choose the impact factors to compute
- Users can now add a special message to the home page of the API
- Refactor and normalize routes names
- CPU die is now express in mm2 instead of cm2
- Refactor the allocation process based on duration
Internal changes
- Facilitating the completion process
- Facilitating the process of adding new devices
- Facilitating the archetype process
- Externalize the impact factors in a separate file
- Create a config file
- CPU die completion now use cpu spec file
- CPU uses die_size instead of die_size_per_core
Breaking changes
Cloud routers
Before
- We add one rout per cloud provider (e.g.
/v1/cloud/aws
)
Now
- We have only one route for all cloud providers (e.g.
/v1/cloud/instance
) - Each route has a parameter called
provider
(in the url for GET requests, in the body for POST requests).
Duration & allocation
Before
- Duration was a field in the usage object called
hours_use_time
.
{
"usage": {
"hours_use_time": 2,
}
}
- Allocation was a route parameter.
Now
- Duration is now a route parameter. Allocation is no longer used
- If not provided, we use the lifetime of the device as duration.
- We compute usage impacts hover the
duration
and allocate embedded impacts on theduration
hover the lifetime of the device. - We introduce the notion of
use_time_ratio
which is the proportion of time the device is used during the given duration. When a device is always used, the usage ratio is 1. When a device is never used, the usage ratio is 0.
{
"usage": {
"use_time_ratio": 0.5,
}
}
Impacts format
Before
"gwp": {
"manufacture": 1900,
"use": 260,
"unit": "kgCO2eq"
},
or
"manufacture_impacts": {
"gwp": {
"value": 23.8,
"unit": "kgCO2eq"
},
"pe": {
"value": 353,
"unit": "MJ"
},
"adp": {
"value": 0.02,
"unit": "kgSbeq"
}
}
}
Now
- Impact formats are now unified.
- "manufacture" is now called "embedded"
"impacts": {
"gwp": {
"embedded": {
"value": 6.68,
"min": 6.68,
"max": 6.68,
"warnings": [
"End of life is not included in the calculation"
]
},
"use": "not implemented",
"unit": "kgCO2eq",
"description": "Total climate change"
},
Verbose format
Before
"USAGE": {
...
"usage_impacts": {
...
}
"avg_power": {
"value": 94.62364134445255,
"unit": "W",
"status": "COMPLETED",
"source": null
},
...
}
Now
- For each component, all attributes are now at the same level in the dictionary.
- Usage impacts are now in the "impacts" dictionary
- Usage attributes are now at the same level as the other attributes
- Attributes may have a "min", a "max" and a "warnings" field.
"CPU-1": {
"impacts": {
"gwp": {
"embedded": {
"value": 64.7,
"significant_figures": 3,
"min": 24.6,
"max": 149,
"warnings": [
"End of life is not included in the calculation"
]
},
"use": {
"value": 160,
"significant_figures": 2,
"min": 160,
"max": 160
},
"unit": "kgCO2eq",
"description": "Total climate change"
}
},
"die_size_per_core": {
"value": 0.47078947368421054,
"status": "COMPLETED",
"unit": "mm2",
"source": "Average for Skylake",
"min": 0.07,
"max": 1.02
}
...
}
Contributors
@AirLoren
@csauge
@da-ekchajzer
@samuelrince
@dorev
@demeringo
@PierreRust
Known future requirements
- Mobile and fix network impacts
- Generalize the AWS process to other cloud providers
- GPU impacts
- Add multiple impact factors for depending on the engraving process size
- Screen impacts from characteristics
- Take into account the uncertainty of the impact factors
- Adding a system layer