A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Green Algorithms

Aims at promoting more environmentally sustainable computational science.
https://github.com/GreenAlgorithms/green-algorithms-tool

Category: Consumption
Sub Category: Computation and Communication

Keywords from Contributors

archiving measur transforms animals conversion observation optimize generic projection compose

Last synced: about 9 hours ago
JSON representation

Repository metadata

README.md

Green Algorithms

www.green-algorithms.org

Generic badge

Maintenance
Open Source? Yes!


Methods and data

The methodology behind the Green Algorithms project is described in our publication:
https://onlinelibrary.wiley.com/doi/10.1002/advs.202100707

All the data used for the calculator are in the /data directory above.

Questions, issues, suggestions? Want to contribute?

Start by opening an issue here, and we will try to address it quickly:
https://github.com/GreenAlgorithms/green-algorithms-tool/issues

You can also contact us at: [email protected]

How to cite this work

Lannelongue, L., Grealey, J., Inouye, M.,
Green Algorithms: Quantifying the Carbon Footprint of Computation.
Adv. Sci. 2021, 2100707. https://doi.org/10.1002/advs.202100707

FAQ

Ask Me Anything !

Should I include the number of processors, number of cores, or number of threads used?

For CPUs, the number of cores (CPUs usually have 4-12 cores per processor). For GPUs, the number of GPUs.
If using multi-threading on CPUs (i.e. using more threads than cores), still input the number of cores,
but be aware that your emissions might be underestimated.

What if my processor is not in the list?

You can select "Other" and find the TDP (Thermal Design Power) value on the manufacturer's website.
Plus, add a comment on this issue so that we can add it to the list!

What if my country is not in the list?

Add a comment on this issue so that we can add it to the list!
(some countries are more secretive than others about their energy mix).
You can use the world average, or a close proxy, for your estimations.

Can I compare algorithms impact independantly of the location?

Yes, simply use the "Energy needed" (in W) displayed next to the carbon emissions.

How do I find the usage factor of my processors?

It depends on your system. For example if you're using SLURM, seff <job_id> will give you the "CPU Efficiency".
Similar commands exist for the different systems, and if you can't find it, you can just leave the default value of 1.

How do I estimate my Multiplicative Factor?

Try to estimate how many times you need to run your full analysis to get results you're happy with.
It can be trials and errors, parameters optimisations, memory issues etc.

What if I found a bug in the tool?

Open an issue on the GitHub so that we can look at it.

Credits

The Green Algorithms project is led by Dr Loïc Lannelongue
with the support of Prof Michael Inouye from the University of Cambridge (UK).

Other contributors

  • Dr Jason Grealey (then: Baker Heart and Diabetes Institute, Melbourne, Australia) helped to start this project.
  • Even Matencio (GitHub, LinkedIn) (then: French Department for the Environment, Paris, France) developed the v3.0 of the calculator and in particular the AI view.
  • The app has also been improved by ongcp97

Software and images

Licence

This work is licensed under a
Creative Commons Attribution 4.0 International License.

CC BY 4.0

CC BY 4.0


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 339
Total Committers: 11
Avg Commits per committer: 30.818
Development Distribution Score (DDS): 0.342

Commits in past year: 119
Committers in past year: 5
Avg Commits per committer in past year: 23.8
Development Distribution Score (DDS) in past year: 0.261

Name Email Commits
Loïc Lannelongue l****e@g****m 223
evenmatencio m****n@g****m 88
Green Algorithms 6****s 11
dependabot[bot] 4****] 6
Jason Grealey j****y@B****l 4
MATENCIO Even e****o@d****r 2
Pierre Le Fevre h****o@p****m 1
Eric Scott s****r@g****m 1
budimirbudimir b****r@m****m 1
Jason Grealey j****y@g****m 1
Jason Grealey j****y@B****l 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 22
Total pull requests: 31
Average time to close issues: 4 months
Average time to close pull requests: 9 months
Total issue authors: 16
Total pull request authors: 8
Average comments per issue: 1.95
Average comments per pull request: 0.71
Merged pull request: 10
Bot issues: 0
Bot pull requests: 20

Past year issues: 7
Past year pull requests: 11
Past year average time to close issues: 5 months
Past year average time to close pull requests: 2 months
Past year issue authors: 5
Past year pull request authors: 7
Past year average comments per issue: 0.43
Past year average comments per pull request: 0.55
Past year merged pull request: 3
Past year bot issues: 0
Past year bot pull requests: 1

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/GreenAlgorithms/green-algorithms-tool

Top Issue Authors

  • Llannelongue (4)
  • mattagape (2)
  • GreenAlgorithms (2)
  • adrientaudiere (2)
  • rvandernoort (1)
  • Geodouss (1)
  • andhya (1)
  • manics (1)
  • davehowell (1)
  • pauleustice (1)
  • fungiboletus (1)
  • drtimf (1)
  • chris-rands (1)
  • foreveremain (1)
  • czmrand (1)

Top Pull Request Authors

  • dependabot[bot] (20)
  • evenmatencio (4)
  • Llannelongue (2)
  • unkaktus (1)
  • pierrelefevre (1)
  • Aariq (1)
  • RevantBabu (1)
  • budimirbudimir (1)

Top Issue Labels

  • enhancement (8)
  • question (4)
  • bug (1)

Top Pull Request Labels

  • dependencies (20)
  • python (1)

Dependencies

requirements.txt pypi
  • Babel ==2.8.0
  • Click ==7.0
  • Flask ==1.1.1
  • Flask-Compress ==1.4.0
  • Jinja2 ==2.11.1
  • MarkupSafe ==1.1.1
  • PyYAML ==6.0
  • Pygments ==2.5.2
  • QtPy ==1.9.0
  • Send2Trash ==1.5.0
  • Sphinx ==2.4.3
  • Werkzeug ==1.0.0
  • alabaster ==0.7.12
  • appnope ==0.1.0
  • attrs ==19.3.0
  • backcall ==0.1.0
  • bleach ==3.1.4
  • certifi ==2021.10.8
  • chardet ==3.0.4
  • coverage ==5.0.3
  • cycler ==0.10.0
  • dash ==1.4.1
  • dash-core-components ==1.3.1
  • dash-html-components ==1.0.1
  • dash-renderer ==1.1.2
  • dash-table ==4.4.1
  • dask ==2021.3.0
  • decorator ==4.4.2
  • defusedxml ==0.6.0
  • docutils ==0.16
  • entrypoints ==0.3
  • future ==0.18.2
  • gunicorn ==20.0.4
  • idna ==2.9
  • imagesize ==1.2.0
  • importlib-metadata ==1.5.0
  • ipykernel ==5.1.4
  • ipython ==7.13.0
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.5.1
  • itsdangerous ==1.1.0
  • jedi ==0.17.0
  • jsonschema ==3.2.0
  • jupyter ==1.0.0
  • jupyter-client ==6.1.3
  • jupyter-console ==6.1.0
  • jupyter-core ==4.6.3
  • kiwisolver ==1.1.0
  • matplotlib ==3.1.1
  • mistune ==0.8.4
  • more-itertools ==8.2.0
  • nbconvert ==5.6.1
  • nbformat ==5.0.6
  • newrelic *
  • notebook ==6.0.3
  • numpy ==1.17.4
  • numpydoc ==0.9.2
  • packaging ==20.1
  • pandas ==0.25.3
  • pandocfilters ==1.4.2
  • parso ==0.7.0
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • plotly ==5.8.0
  • pluggy ==0.13.1
  • pprintpp ==0.4.0
  • prometheus-client ==0.7.1
  • prompt-toolkit ==3.0.5
  • ptyprocess ==0.6.0
  • py ==1.8.1
  • pycountry ==19.8.18
  • pycountry-convert ==0.7.2
  • pyparsing ==2.4.6
  • pyrsistent ==0.16.0
  • pytest ==5.3.5
  • pytest-cov ==2.8.1
  • pytest-mock ==2.0.0
  • python-dateutil ==2.8.1
  • pytz ==2019.3
  • pyzmq ==18.1.1
  • qtconsole ==4.7.4
  • repoze.lru ==0.7
  • requests ==2.23.0
  • retrying ==1.3.3
  • scipy ==1.4.1
  • seaborn ==0.9.0
  • six ==1.14.0
  • snowballstemmer ==2.0.0
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==1.0.3
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.4
  • tenacity ==8.0.1
  • terminado ==0.8.3
  • testpath ==0.4.4
  • tornado ==6.0.4
  • traitlets ==4.3.3
  • urllib3 ==1.25.8
  • wcwidth ==0.1.8
  • webencodings ==0.5.1
  • widgetsnbextension ==3.5.1
  • zipp ==3.1.0
requirements_old.txt pypi
  • Babel ==2.9.1
  • Click ==7.0
  • Flask ==1.1.1
  • Flask-Compress ==1.4.0
  • Jinja2 ==2.11.3
  • MarkupSafe ==1.1.1
  • Pygments ==2.7.4
  • Sphinx ==2.4.3
  • Werkzeug ==1.0.0
  • alabaster ==0.7.12
  • attrs ==19.3.0
  • certifi ==2019.11.28
  • chardet ==3.0.4
  • coverage ==5.0.3
  • cycler ==0.10.0
  • dash ==1.4.1
  • dash-core-components ==1.3.1
  • dash-html-components ==1.0.1
  • dash-renderer ==1.1.2
  • dash-table ==4.4.1
  • dask ==2021.10.0
  • docutils ==0.16
  • future ==0.18.2
  • gunicorn ==20.0.4
  • idna ==2.9
  • imagesize ==1.2.0
  • importlib-metadata ==1.5.0
  • itsdangerous ==1.1.0
  • kiwisolver ==1.1.0
  • matplotlib ==3.1.1
  • more-itertools ==8.2.0
  • newrelic *
  • numpy ==1.17.4
  • numpydoc ==0.9.2
  • packaging ==20.1
  • pandas ==0.25.3
  • plotly ==4.5.0
  • pluggy ==0.13.1
  • pprintpp ==0.4.0
  • py ==1.10.0
  • pycountry ==19.8.18
  • pycountry-convert ==0.7.2
  • pyparsing ==2.4.6
  • pytest ==5.3.5
  • pytest-cov ==2.8.1
  • pytest-mock ==2.0.0
  • python-dateutil ==2.8.1
  • pytz ==2019.3
  • repoze.lru ==0.7
  • requests ==2.23.0
  • retrying ==1.3.3
  • scipy ==1.4.1
  • seaborn ==0.9.0
  • six ==1.14.0
  • snowballstemmer ==2.0.0
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==1.0.3
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.4
  • urllib3 ==1.26.5
  • wcwidth ==0.1.8
  • zipp ==3.1.0

Score: 7.134093721192866