Skip to content

v1.0.0

Compare
Choose a tag to compare
@da-ekchajzer da-ekchajzer released this 10 Oct 21:49
· 271 commits to main since this release
93d803e

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 the duration 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