Climate Action Discourse

Greener Infrastructure Summary Post

This is a wiki stub page for CATs to fill out with more useful info and links shared in the #greener-infra channel in the CAT slack.

Any CAT member should be able to add to this page, as it’s a wiki page, and will long laster than the rolling curtain of doom that free slack has.

Ways to reduce impact

This taxonomy is largely based on ‘Platform’ in Packets, Platform, Process, a mental model outlined here:


Provider

Different providers of infrastructure source power differently.

For a quick check you can use the green web check:

https://www.thegreenwebfoundation.org/green-web-check/

If you use AWS:

More on which providers use which energy.

TLDR: Google and M$ are account for their emissions, but most other big providers either do not, or do not provide much transparency if they do.

Opinionated deck, running through options available right now, if you want to green your stack - from Chris Adams (speaking strictly in a personal capacity, not on behalf of any org).

Might be NSFW, depending on where you work:

Provisioning

How you provision capacity to match demand also has an impact - when you burn cash on unused capacity, you almost always end up burning fossil fuels and emitting carbon:

https://www.thegreenwebfoundation.org/news/provisioning-and-providers-two-levers-for-a-lower-carbon-internet/

Conversely, if you can shift the time you use compute, that can also have an effect, because the

Programming Language

Different programming languages uses resources differently. This is a gentle way in, with a rough taxonomy of power usage by language choice.

Please note - we’re grown ups, and there are valid reasons to use programming languages beyond energy efficiency. Ecosystem size, ease of hiring, readability, etc.

This research lab in Portugal regularly puts out interesting, papers on this subject:
https://greenlab.di.uminho.pt/

Processor choice

Different processor architectures use power in different ways.

For example, ARM is well-known for low power use, compared to the x86 default, hence its use in mobile devices . You need to compile for it specifically though.

New development in processor design allow for new tricks software, to user them better, like SIMD in more recent processors:

image

Taken from this article explaining the use of vectorisation and SIMD, in the context of using Hive, a common open source ‘Big Data’ tool

For example, software that uses the Apache Parquet format can take advantage of this chip design. You typically need extensions for popular open source tools though:

Using Apache Parquet and Sqlite together to make better use of space and resources

Examples of using PostgresSQL with Apache parquet

Custom chips and FPGAs (field programmable, gate arrays - a kind of halfway between software and hardware) are another optimisation, although you need software to take advantage of it.

Using FPGAs as extensions in Postgres

Examples of providers who will help you run workloads on greener compute

https://yellowdog.co/case_studies/workload-prediction-grid-efficiency/
https://helio.exchange


(Yes, we have discussed sponsorship of Slack, it’s proved too expensive each time, and none of us know anyone at Slack with enough clout to sponsor the group. Sorry.