Systems and methods for determining software carbon emissions
A method or system that includes determining a functional boundary for a software application; determining a functional unit for the software application; receiving an energy consumption measurement for the software application; receiving a location-based marginal carbon emissions measurement for the software application; determining a hardware emissions measurement for the software application; determining a lifespan emissions measurement for the software application; and determining a software carbon emissions measurement for the software application based at least on the functional boundary, the functional unit, the energy consumption measurement, the location-based marginal carbon emissions measurement, the hardware emissions measurement, or the lifespan emissions measurement. Other embodiments are described.
1 . A system comprising:
one or more processors; and
one or more non-transitory computer-readable media storing computing instructions that, when run on the one or more processors, cause the one or more processors to perform operations comprising:
determining a functional boundary for a software application;
determining a functional unit (U) for the software application;
determining an expected lifespan (L) for the software application;
determining a time (T) that hardware is reserved for use by the software application;
determining a proportion (F) of total available resources of the hardware reserved for use by the software application;
collecting an energy consumption measurement (E) per unit of time for the software application from a Power Distribution Unit (PDU) sensor and modifying the energy consumption measurement based on a Central Processing Unit (CPU) usage measurement to weigh the energy consumption measurement by hardware utilization;
collecting a location-based marginal carbon emissions measurement (l) for the software application;
determining a total embodied emissions(S), comprising one or more of: a hardware emissions measurement for the software application, or
a lifespan emissions measurement for the software application; and
determining a software carbon emissions measurement for the software application using an equation comprising:
SCE
(
U
)
=
[
EI
+
(
SF
/
L
)
]
×
T
.
2 . The system of claim 1 , wherein determining the functional boundary for the software application further comprises:
determining one or more of containerization, virtualization, or orchestration for an implementation of the software application; and
determining one or more components to analyze from one or more of: a data center, a server rack, a server, hardware, a mobile device, or a manufacturing process.
3 . The system of claim 1 , wherein determining the functional unit for the software application further comprises determining an incremental unit from one or more of: adding a new user, one additional application programing interface (API) call, or an individual machine learning job, wherein the incremental unit corresponds to the functional unit and identifies a function of increase for the software carbon emissions measurement.
4 . The system of claim 1 , wherein collecting the location-based marginal carbon emissions measurement for the software application further comprises:
identifying a location of a power source for the software application;
determining a fuel measurement for the power source; and
determining the location-based marginal carbon emissions measurement for the software application based on the fuel measurement.
5 . The system of claim 4 , further comprising converting the fuel measurement for the power source.
6 . The system of claim 1 , wherein determining the total embodied emissions(S) for the software application further comprises:
identifying an equipment manufacturer for hardware executing the software application; and
determining the hardware emissions measurement for the software application based on the equipment manufacturer.
7 . The system of claim 1 , wherein determining the total embodied emissions(S) for the software application further comprises determining a period of time to generate the software application.
8 . The system of claim 1 , wherein determining the functional unit (U) for the software application further comprises:
determining a unit of measurement represented by a subsequent carbon emissions measurement.
9 . A method comprising:
determining a functional boundary for a software application;
determining a functional unit (U) for the software application;
determining an expected lifespan (L) for the software application;
determining a time (T) that hardware is reserved for use by the software application;
determining a proportion (F) of total available resources of the hardware reserved for use by the software application;
collecting an energy consumption measurement (E) per unit of time for the software application from a Power Distribution Unit (PDU) sensor and modifying the energy consumption measurement based on a Central Processing Unit (CPU) usage measurement to weigh the energy consumption measurement by hardware utilization;
collecting a location-based marginal carbon emissions measurement (l) for the software application;
determining a total embodied emissions(S), comprising one or more of: a hardware emissions measurement for the software application, or
a lifespan emissions measurement for the software application; and
determining a software carbon emissions measurement for the software application using an equation comprising:
SCE
(
U
)
=
[
EI
+
(
SF
/
L
)
]
×
T
.
10 . The method of claim 9 , wherein determining the functional boundary for the software application further comprises:
determining one or more of containerization, virtualization, or orchestration for an implementation of the software application; and
determining one or more components to analyze from one or more of: a data center, a server rack, a server, hardware, a mobile device, or a manufacturing process.
11 . The method of claim 9 , wherein determining the functional unit for the software application further comprises determining an incremental unit from one or more of: adding a new user, one additional application programing interface (API) call, or an individual machine learning job, wherein the incremental unit corresponds to the functional unit and identifies a function of increase for the software carbon emissions measurement.
12 . The method of claim 9 , wherein collecting the location-based marginal carbon emissions measurement for the software application further comprises:
identifying a location of a power source for the software application;
determining a fuel measurement for the power source; and
determining the location-based marginal carbon emissions measurement for the software application based on the fuel measurement.
13 . The method of claim 12 , further comprising converting the fuel measurement for the power source.
14 . The method of claim 9 , wherein determining the total embodied emissions(S) for the software application further comprises:
identifying an equipment manufacturer for hardware executing the software application; and
determining the hardware emissions measurement for the software application based on the equipment manufacturer.
15 . The method of claim 9 , wherein determining the total embodied emissions(S) for the software application further comprises determining a period of time to generate the software application.
16 . The method of claim 9 , wherein determining the functional unit (U) for the software application further comprises:
determining a unit of measurement represented by a subsequent carbon emissions measurement.