Comments (6)
Following today's meeting
-
We reach the same points (2 & 3)
-
We have identified the same problems with the time and affectation issues : When the user request the impacts for a specific time window how to affect the scope3 (linearly, all the impact, …)
-
Temporary decisions :
- Don't aggregate scope 2 & 3
- Returns the total of manufacture impacts
- Returns the impact of usage for the time given by the user (or, by default, a year)
-
Power per load should be set as a percentage of max_power
from boaviztapi.
Impact factors
Carbon intensity
https://ourworldindata.org/grapher/carbon-intensity-electricity from
https://www.bp.com/en/global/corporate/energy-economics/statistical-review-of-world-energy.html (BP)
TODO : Validate data
Primary energy factor
TODO : Find electricity primary energy factor by country (per year)
ADP energy factor
TODO : Find electricity abiotic depletion potential factor by country (per year)
from boaviztapi.
Device yearly consumption
Electrical consumption
-
If yearly_electrical_consumption is given by the user, use this value.
-
If not, yearly_electrical_consumption is measured as follows :
yearly_electrical_consumption = ((max_power*(1-idle_time_ratio)*medium_workload) + (idle_time_ratio * idle_power))*365*24
- If power is unknown, the attributes is smart complete
- It can be found from power_supply component
- It can be set has a default value
Default server data
From Dell R640 LCA
_DEFAULT_IDLE_RATIO = 2.4/24 = 10%
_DEFAULT_IDLE_PERCENTAGE_MAX_POWER = 201/510 = 40%
_DEFAULT_MEDIUM_WORKLOAD = (100*3.6 + 50*13.2 + 10*4.8)/(24-2.4) = 50%
_DEFAULT_MAX_POWER = 510
if we apply the formula to the Dell R740:
yearly_electrical_consumption_dellR740
= ((_DEFAULT_MAX_POWER *(1-_DEFAULT_IDLE_RATIO )*medium_workload) +
(_DEFAULT_IDLE_RATIO * (_DEFAULT_IDLE_PERCENTAGE_MAX_POWER *_DEFAULT_MAX_POWER))
)*365*24
= 2189 kwh/year < 3081 kwh/year (Dell data)
from boaviztapi.
I'm wondering what would be the most common situation from an API user POV when not having the electrical consumption (that would be most of the cases):
- I know the average load my resource runs at (is this the
workload_ratio
attribute?) and theidle_time_ratio
if any + a number of hours/days it has run (it can be 365 days for on-prem always-on resources or something different for cloud resources) - I only can guess the average load my resource runs at (low, medium, high) and a time window
- I have no idea about the load but want an average estimation for a time window
I think the ideal for us would be to compute for each server configuration the P (power consumption) values we see in the Dell example and then simply calculate the consumption based on the parameters or fall back to something we can define (365 days running an average load).
from boaviztapi.
For cloud we will do an other process with a bottom-up approach per component #29 but the same problems occurs with the load
For server something like that :
Power per load
LOAD | high (100%) | medium (50%) | low (10%) | idle | off |
---|---|---|---|---|---|
Power (W) | X | X | X | X | 0 |
1 - I have the different power per load -> Use it
2 - I only have the max power -> Can medium, low and idle be retrieve has function of max power ?
3 - I have nothing -> Use Dell R740 power per load
Time ratio per load
LOAD | high (100%) | medium (50%) | low (10%) | idle | off |
---|---|---|---|---|---|
Time_ratio (% of day per year or hour per day) | X | X | X | X | X |
1 - I have the different time ratio per load -> Use it
2 - I only have the medium workload -> what can we do ?
3 - I have nothing -> Use Dell R740 power per load
Equation
yearly_electrical_consumption = [power(high) * time_ratio(high) + power(medium) * time_ratio(medium) + power(low) * time_ratio(low) + power(idle) * time_ratio(idle) + power(off) * time_ratio(off)]*24*365
Future dev
I think it is ok to use Dell R740 for now because in the future you will be able to select an archetype (#1). All the missing datas will be set with the value of this archetype and not the value of the default configuration.
from boaviztapi.
Thanks,
For: "2 - I only have the max power -> Can medium, low and idle be retrieved as function of max power ?" we can define some heuristics based on existing data (to be discussed), maybe @bpetit would have some interesting thoughts on this from Scaphandre and we can reuse AWS bare-metal power profiles data on top of Dell's.
For: "3 - I have nothing -> Use Dell R740 power per load" Ok to use Dell as a first step and then the closest archetype profile available, to be discussed in (#1) but we can easily generate profiles like for example: 1 low TDP (<100W) CPU + 128 Gb memory etc.
from boaviztapi.
Related Issues (20)
- Internal server error when requesting https://api.boavizta.org/v1/server/ with archetypes dellR740 and mac2.metal HOT 5
- No CPU core units default for lots of archetypes HOT 3
- Remove 0.491 in CPU die calculation
- GWP use impact value is "not implemented" in last version for at least desktop and laptop HOT 2
- Integrate DC (technical environment en building) footprint estimation
- Extending AWS servers lifetime in servers.csv, to match new official AWS refresh policy ?
- Missing AWS platforms / servers for several instance references
- cloud/instance with is4gen.8xlarge leads to "ZeroDivisionError: float division by zero" HOT 3
- Instances referencing non existing "platform_aws_m1" platform, leads to 500 error / HOT 1
- The impact of RAM and CPU usage is counted twice
- Chore[CI]: update github actions that rely on Node16
- Compliance with ISO 21031/GSF Software Carbon Intensity
- Update electricity impact factors
- Verbose output of CPU and RAM use impact values are inconsistent with total use impact values
- RAM coefficient value - implementation vs. HotCarbon paper
- Add a API route that returns current version of the API
- Run python tests CI workflow on dependency update HOT 2
- Improve our security posture by allowing dependabot to open PR HOT 2
- Upgrade fastapi dependency HOT 3
- Upgrade to pydantic v2 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from boaviztapi.