Download - GNOME Events (Indico)
![Page 1: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/1.jpg)
July 23, 2020 Online
How can I make my project more environmentallyfriendly?
Philip WithnallEndless
![Page 2: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/2.jpg)
How can I make my project more environmentally friendly? 2
Motivation
Limiting global warming to 1.5 ◦C is a global priority
![Page 3: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/3.jpg)
How can I make my project more environmentally friendly? 3
Life cycle analysis and products
Figure: Life cycle analysis (public domain)
![Page 4: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/4.jpg)
How can I make my project more environmentally friendly? 4
Carbon intensity of power generation
Power source Carbon intensity (gCO2e/kWh)Hydro 4Wind 12Nuclear 16Solar PV 46
Gas 469Coal 1001
IT average 300
Figure: Rough carbon intensities of power generation[1]
![Page 5: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/5.jpg)
How can I make my project more environmentally friendly? 5
Embodied carbon in software
GNOME could provide carbon labelling for what we produce
![Page 6: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/6.jpg)
How can I make my project more environmentally friendly? 6
Functional unit and system boundary
Functional unit: one dist tarball of a software release
![Page 7: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/7.jpg)
How can I make my project more environmentally friendly? 7
Functional unit and system boundary
GNOMEFoundation
Conferences
Hackfests
Marginal costson user systems
• Compute• Network• Storage
GNOME-administeredservers
CI pipelines
System boundary
Figure: Proposed system boundary for GNOME
![Page 8: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/8.jpg)
How can I make my project more environmentally friendly? 8
Measuring marginal costs on user systems
Use casessysprof + Buildersystemd unit accountingKernel power state statisticsWattmeter on power supply
![Page 9: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/9.jpg)
How can I make my project more environmentally friendly? 9
Measuring marginal costs on user systems: Use cases
What use cases are you actually solving?
![Page 10: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/10.jpg)
How can I make my project more environmentally friendly? 10
Measuring marginal costs on user systems: sysprof + Builder
sysprof-cli -- your-program-here
![Page 11: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/11.jpg)
How can I make my project more environmentally friendly? 11
Measuring marginal costs on user systems: sysprof + Builder
Figure: sysprof results in GNOME Builder
![Page 12: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/12.jpg)
How can I make my project more environmentally friendly? 12
Measuring marginal costs on user systems: systemd unit accounting
echo -e "DefaultCPUAccounting=yes\n" \"DefaultIOAccounting=yes\n" \"DefaultIPAccounting=yes" >> \/etc/systemd/system.conf
![Page 13: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/13.jpg)
How can I make my project more environmentally friendly? 13
Measuring marginal costs on user systems: systemd unit accounting
$ s y s t emc t l s t a t u s g eo c l u e . s e r v i c e• geo c l u e . s e r v i c e − Loca t i on Lookup S e r v i c e
Loaded : l oaded (. . ./ g eo c l u e . s e r v i c e ; . . .)A c t i v e : a c t i v e ( r unn i ng ) s i n c e F r i . . .
Main PID : 2645 ( g eo c l u e )IP : 8 . 1M in , 3 . 4M outIO : 6 . 0M read , 9 . 1M w r i t t e n
Tasks : 4 ( l i m i t : 18742)Memory : 10 .3M
CPU: 1min 42 .217 sCGroup : / system . s l i c e / g eo c l u e . s e r v i c e
2645 / u s r / l i b e x e c / g eo c l u e
![Page 14: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/14.jpg)
How can I make my project more environmentally friendly? 14
Measuring marginal costs on user systems: kernel power state statistics
sudo powertop
![Page 15: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/15.jpg)
How can I make my project more environmentally friendly? 15
Measuring CI pipelines
Npipelines × (pipeline duration × 0.114 kW × 300 gCO2e/kWh +
pipeline downloads × 17 gCO2e/GB)
![Page 16: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/16.jpg)
How can I make my project more environmentally friendly? 16
Measuring the other bits
GNOME-administered serversGNOME FoundationConferencesHackfests
![Page 17: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/17.jpg)
How can I make my project more environmentally friendly? 17
Measuring the other bits
We’re measuring GUADEC (thanks Bartłomiej!)
![Page 18: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/18.jpg)
How can I make my project more environmentally friendly? 18
Improving marginal costs on user systems
Where do we want to get to?Be used for less timeDo less work; use less networkDo work faster; use the network more efficientlyCache better
![Page 19: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/19.jpg)
How can I make my project more environmentally friendly? 19
Improving CI pipelines
Speed up your pipelines (use pre-built Docker images)Avoid downloads (use pre-built Docker images)Use shallow clones (see my blog)
![Page 20: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/20.jpg)
How can I make my project more environmentally friendly? 20
Improving the other bits
More measuring to do: Foundation operations, and every time ahackfest is organised
![Page 21: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/21.jpg)
How can I make my project more environmentally friendly? 21
Pulling it all together
GNOME apps should be labelled with their embodied carbon cost: their share ofthe GNOME project and Foundation overheads, plus their costs for CI andhackfests, in each major release cycle
We don’t have all the data for that yet, but should collect itReduce those embodied costs (optimise CI, make hackfests carbon-neutral)Reduce the marginal costs of your apps (optimise them, and don’t waste the user’stime)
![Page 22: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/22.jpg)
How can I make my project more environmentally friendly? 22
Pulling it all together
GNOME apps should be labelled with their embodied carbon cost: their share ofthe GNOME project and Foundation overheads, plus their costs for CI andhackfests, in each major release cycleWe don’t have all the data for that yet, but should collect it
Reduce those embodied costs (optimise CI, make hackfests carbon-neutral)Reduce the marginal costs of your apps (optimise them, and don’t waste the user’stime)
![Page 23: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/23.jpg)
How can I make my project more environmentally friendly? 23
Pulling it all together
GNOME apps should be labelled with their embodied carbon cost: their share ofthe GNOME project and Foundation overheads, plus their costs for CI andhackfests, in each major release cycleWe don’t have all the data for that yet, but should collect itReduce those embodied costs (optimise CI, make hackfests carbon-neutral)
Reduce the marginal costs of your apps (optimise them, and don’t waste the user’stime)
![Page 24: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/24.jpg)
How can I make my project more environmentally friendly? 24
Pulling it all together
GNOME apps should be labelled with their embodied carbon cost: their share ofthe GNOME project and Foundation overheads, plus their costs for CI andhackfests, in each major release cycleWe don’t have all the data for that yet, but should collect itReduce those embodied costs (optimise CI, make hackfests carbon-neutral)Reduce the marginal costs of your apps (optimise them, and don’t waste the user’stime)
![Page 25: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/25.jpg)
How can I make my project more environmentally friendly? 25
Open questions
1. What is the power usage of a virtualised server?2. What is the carbon intensity of our server power supplies?3. Other life cycle analysis impacts (ozone, eutrophication, water consumption, etc.)4. How many users do we have??5. Can we collect better statistics about user systems?
![Page 26: GNOME Events (Indico)](https://reader033.vdocument.in/reader033/viewer/2022050612/6273db80551d6a4f07101616/html5/thumbnails/26.jpg)
How can I make my project more environmentally friendly? 26
Miscellany
Slide source https://gitlab.com/pwithnall/guadec-environmental-presentation-2020
IPCC SR15 summary https://www.ipcc.ch/sr15/chapter/spm/
Creative Commons Attribution-ShareAlike 4.0 International License
Beamer theme: https://gitlab.gnome.org/GNOME/presentation-templates/tree/master/GUADEC/2020