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

Duplicate configuration.gpu.memory in aws.csv #226

Closed
JacobValdemar opened this issue Sep 28, 2023 · 3 comments
Closed

Duplicate configuration.gpu.memory in aws.csv #226

JacobValdemar opened this issue Sep 28, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@JacobValdemar
Copy link
Contributor

Bug description

In aws.csv the data contains two columns with the name configuration.gpu.memory. Looking at the data, maybe the first instance should have been named to configuration.gpu.name?

model.name,model.manufacturer,model.type,model.year,configuration.cpu.units,configuration.cpu.core_units,configuration.cpu.name,configuration.cpu.manufacturer,configuration.cpu.model_range,configuration.cpu.family,configuration.cpu.tdp,configuration.cpu.manufacture_date,configuration.ram.capacity,configuration.ram.units,configuration.disk.units,configuration.disk.type,configuration.disk.capacity,configuration.power_supply.units,configuration.gpu.memory,configuration.gpu.memory,configuration.gpu.units,usage.instance_per_server,usage.overcommited,Warnings

To Reproduce

Expected behavior

JSON OUTPUT

Additional context

@JacobValdemar JacobValdemar added the bug Something isn't working label Sep 28, 2023
@da-ekchajzer
Copy link
Collaborator

Thanks for this bug report. We fixed it in the dev version: https://github.com/Boavizta/boaviztapi/blob/dev/boaviztapi/data/archetypes/cloud/aws.csv

The dev version should be released soon. I recommend you to use it as of today.

GPU data is not used because we don't yet have a method to take their impacts into account. Dedicated issue : #65

@JacobValdemar
Copy link
Contributor Author

JacobValdemar commented Sep 28, 2023

@da-ekchajzer OMG I have been using main for so long and wondered why so much seemed outdated. I am happy that you shared with me that you have a dev branch. Will use that going forward 🚀

@da-ekchajzer
Copy link
Collaborator

da-ekchajzer commented Sep 29, 2023

Dev doc : dev.doc.api.boavizta.org/

Since we made some breaking changes, here is a draft of the pre-release :

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

ToDo

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants