Green Process Scheduling

What it does

The following project allows programmers to deploy any job (e.g. bash script to train an AI model) at the time where they will use the most clean energy.

Why is this helpful?

  1. Machine learning models contribute large amounts of energy consumption ultimately translating to large amounts of CO2 emissions and placing an even larger human carbon footprint on this world.
  2. Google says over 15% of their total energy consumption went towards ML related computing. Additionally, some large language models can use upwards of 552 tons of CO2 energy. To put this into perspective the average person uses 16.4 tons of CO2 energy a year, so the carbon footprint of one large language model is approximately 34 times that of the average person. THere are many other ML models that are run every year that utilize large amounts of carbon emissions.
  3. Many of these large models are not time sensitive and can be run at any time throughout the day. If run at the correct time these carbon emissions can be reduced by 15% and if ran in a green locaiton the carbon emissions can be reduced by up to 50%.

Installation

npm i -g gschedule (might need sudo at the front)

Usage

To Create a Schedule Job:

gschedule create
      --name=<name> 
      --command="<command or script to run>" 
      --eta=<hours:minutes> 
      --range=<must in run in this many hours>

Example:

gschedule create --name=test --command="echo HELLO" --eta=0:5 --range=12

Inspiration

We were inspired by Apple's efforts to become more eco-friendly through their Clean Energy Charging feature.

How we built it

  1. The program works by retrieving the user's IP address and subsequently their geolocation using cURL.
  2. It uses their latitude and longitude to use the National Weather Service's API to grab data about the weather for a specified range (max: 24 hours) into the future.
  3. Using weather data along with calculations using data about wind turbines and solar panels in all 50 states, the program finds the time where the most renewable energy is being used and deploys the program when it has the least negative impact on the environment.

Challenges we ran into

We were very unsure on how to calculate the optimal time to run code. We had to do a lot of research to understand how to calculate solar and wind energy. Even though calculating was not that complex, we weren't able to get all the data required to have a fully optimal calculation. To make sure it worked for every location we had to make many generalizations (explained in our video).

Accomplishments that we're proud of

We are extremely happy that we were able to implement the program with real-time data instead of data from the past. We are also proud that we were able to combine so many different APIs and sources of data into a cohesive CLI that people can use.

What we learned

We learned how to build and implement a CLI tool. We also learned how to run bash commands through JavaScript (cURL). We were able to learn more about using JSON objects with JavaScript, and how to use different APIs. Additionally, we learned how to parse CSV files for information.

What's next for Green Process Scheduling

Building on top of the current program we want to get more specified data for certain locations so that we can further precisely analyze the solar power and wind power that is generated in a certain location. Additionally, finding green locations would be important for cutting carbon emissions down by an even greater rate and something we would like to implement in the future.

Built With

Share this project:

Updates