Earth Day is an annual event that demonstrates support for environmental protection since 1970. This year’s official theme is “Invest In Our Planet” - held on Friday 22 April 2022.

But Earth Day is not just one day - it is a reminder that Environmental Protection efforts need to be constant and broad. And it's not just involving governments, as businesses and individuals can significantly contribute to protecting the environment.

 

Environmental issues are critical for our world as we know it!

In order to understand how, let's firstly consider some critical facts that currently trouble the environment:

  • Global temperature increased by +1.2 degrees Celsius since 1900’s
  • The top 100 meters of the oceans store 90% more energy
  • Sea level has increased 25cm since 1880
  • Oceans now observe 10.8 billion metric tonnes per year caused by human activity carbon dioxide emissions
  • Forests lost 1.3 million km2  (around the size of Mexico) between 1990 and 2015
  • Annual wildfires multiplied by a factor of x10 since 1970s

 

Software has a great impact on the environment!

Having identified these critical issues regarding environmental effects, let's now consider some indicative contributing factors:

  • In 2018, online video viewing generated more than 300 MtCO2, i.e. as much greenhouse gas as Spain emits: 1% of global emissions. [source]
  • The greenhouse gas emissions of VoD (video on demand) services (e.g. Netflix and Amazon Prime) are equivalent to those of a country like Chile (more than 100 MtCO2eq/year, i.e. close to 0.3% of global emissions). [source]
  • The European Commission-funded Eureca project found that data centres in EU countries consumed 25% more energy in 2017 compared with 2014. [source]
  • Five billion plays clocked up by just one music video – the hit 2017 song Despacito – consumed as much electricity as Chad, Guinea-Bissau, Somalia, Sierra Leone and the Central African Republic put together in a single year. “The total emissions for streaming that song could be over 250,000 tonnes of carbon dioxide,” [source]

The carbon footprint of our gadgets, the Internet and the systems supporting them account for about 3.7% of global greenhouse emissions, according to estimates. It is similar to the amount produced by the airline industry globally and these emissions are predicted to double by 2025. [source]

All these facts merge to a single conclusion: Software based services can greatly affect the environment.

 


Green Software Development Principles

So, how businesses and individual technology professionals, such as software developers, can help?
There are 8 Principles of Green Software Engineering that we should think of:

  • Carbon: This means building applications that are carbon efficient. In the context of software development, this translates into building software products that offer equal of more value to users while producing less carbon emissions.
  • Electricity: This means building applications that are energy efficient, typically by producing applications and software components that have low electricity consumption.
  • Carbon Intensity: This means to consume electricity with the lowest carbon intensity, which is how much carbon emissions are generated per kilowatt-hour of electricity consumed. In relation to software development and operation, this means that we should aim to consume as much electricity from renewable sources as possible.
  • Embodied Carbon: This means building applications that are hardware efficient, i.e. aim at reducing the amount of carbon released during the creation and disposal of electronic devices.
  • Energy Proportionality: This means maximizing the energy efficiency of hardware, i.e. its utilization. The aim is to design devices running at maximum capacity is fully utilized and have a high utilization percentage, instead of having idle systems with low utilization. Virtualisation of any kind is a great example of that.
  • Networking: This means reducing the amount of data and distance it must travel across the network. The aim is to lower carbon emissions related to the networking chain by reducing the size of the data and the distance it travels across the network.
  • Demand Shaping: This means building carbon-aware applications. This is a strategy of moving demand for computing resources to a different time or region and “shaping” it to match the available supply. A good example of that is video conferencing applications, as it usually shapes demand by reducing the video quality and prioritizing the audio quality.
  • Measurement & Optimization: This means focusing on step-by-step optimizations that increase the overall carbon efficiency. As this can be managed as a long-term strategy, we should aim to recognise our full technology stack, along with the user experience, data center layout, electricity grids, while weighing up the costs of decarbonization against the potential benefits. This will lead to a prioritisation plan that would include the parts of our technology world that would make the greatest return.

  

Green software development practices

In practice software related professionals, such as developers, can consider the following four areas that could greatly help them in serving the above principles:

  • Design and coding options
  • Choice of language
  • Choice of AI Model
  • Software Development Pipeline Monitor



Design and coding options

Related recommendations for developers include:

  • Focusing on controlling features with higher power consumption and common usage scenarios.
  • Aim to reduce data usage by adopting efficient cache policy, minimising data exchange between different systems and managing the lifecycle of stored data. At the same time aim to compress and aggregate data, while using smaller sizes for media and image when possible.
  • Aim to remove or refactor unused features as this improves energy efficiency and makes software more maintainable.
  • Aim to detect and remove loops that don’t achieve their original purpose and consume energy in vain. e.g. trying to connect to an unreachable server.
  • Also try to adapt the whole application or software component behaviour according to the underlying device power mode or other environmental and operating conditions.
  • Add a threshold to the computational accuracy of any function which will match its actual usage needs. For instance, there is no need to calculate more than 100 metres distance accuracy, if you are just highlighting for an island in a map.
  • Aim to monitor real-time energy consumption of the application, to identify software modules that can be optimized to produce fewer emissions.



Choice of language

Related recommendations for developers include:

  • The choice of a programming language can also greatly influence the energy efficiency of the software. It turns out that, there is a huge gap between the energy efficiency between languages, so the selection should also consider this aspect.



Choice of Artificial Intelligence Model

Related recommendations for developers include:

  • Use a less-power-consuming Machine Learning model.
  • Create and share reproducible code that will reduce duplicated efforts.
  • Develop and use specialized hardware optimized for AI workload.



Software Development Pipeline Monitoring

Related recommendations for developers include:

  • Aim to monitor real-time power consumption. This can be achieved through techniques such as dynamic code analysis.
  • Aim to comprehend the gaps between the design choices and actual energy profiles.
  • Use available tools and resources to manage energy consumption. An indicative example is Intel’s Software Development Assistant.

  

Give it a try!

Considering all the above items, businesses but also individual technology professionals are now able to greatly contribute to Environmental Protection.
Now more than ever, there are structured ways, tools and technologies that can help us make a positive impact while preserving the same level of user experience, performance and security it's developed software product.

Also, consumers, users and regulatory bodies can now bring tangible requirements within the software development requests.
In any case, any individual or collective effort can make the difference in Environmental Protection. All we have to do as technology professionals is to give it a try!

-----

For more information on understanding Green Software Development, interested parties can look into related resources, such as:

  • Understanding Green Software Development: A Conceptual Framework [webpage]
  • Software Energy Consumption [webpage]
  • Green Software Foundation [webpage]
  • Energy Efficiency across Programming Languages [webpage]
  • Principles of Green Software Engineering [webpage]
  • The Imperative for Sustainable AI Systems [webpage]
  • Tools to Measure Software Energy Consumption from your Computer [webpage]

For more information on how to integrate Green Software Development Practices to your Secure SW Development process contact Netcompany-Intrasoft.


Author: Dr. Emmanouil SERRELIS, Information Security Department Manager, Netcompany-Intrasoft