17 April 2024 831 words, 4 min. read

Energy-efficient software: a source of competitiveness

By Pierre-Nicolas Schwab PhD in marketing, director of IntoTheMinds
Energy efficiency is a concept that also applies to IT. In this article, I develop the idea that choosing a software solution based on its programming language can bring productivity and financial gains.

Cloud computing is all the rage. Companies of all sizes now run their software on infrastructures (AWS, Azure, Google Cloud) to which they lease computing capacity. All these companies have no financial interest in saving you computing time because they’d lose money in the process. In this article, I examine energy-efficient software and explain why eco-programming is also good for your wallet.

Contact the research agency IntoTheMinds

If you have software running in the Cloud, you may one day find yourself with an unpleasant surprise. You’re not immune to an explosion in your costs due to the use, legal or otherwise, of CPUs (see video below).

That’s why you need to closely examine the programming languages you use, as they influence the processing speed of your operations.

The programming language influences energy consumption

One research sets the benchmark for the energy efficiency of programming languages. Its methodology compares the memory usage and execution speed of 10 programming languages (Perl, Python, Ruby, PHP, C, C++, Lua, Tcl, JavaScript, and Java). This approach makes sense when comparing energy consumption, as faster execution, and a smaller memory footprint generally lead to lower CPU power consumption.

 

energy efficiency Execution time

Comparison of different programming languages based on the research cited in the article.

To give you an idea of the magnitude scales, I’ve used the research to calculate a few orders of magnitude.

Execution time

    • C is 100 times faster than Python
    • C++ is 6.7 times faster than Java
    • Perl is 10 times faster than Java

This gives you an idea of which languages to choose if you want to focus on eco-programming (I don’t know if the term exists, but it seems perfectly appropriate to me).

Memory usage

Memory usage is not a process that directly consumes energy. However, it can have an impact on the environment at 2 levels. Firstly, making effective use of memory means you don’t have to add RAM to your machines (which is expensive, and manufacturing an electronic component requires a lot of water). Secondly, using memory speeds up calculations compared with reading from a hard disk.

    • C uses 1.5% of the memory consumed by Python.
    • C++ consumes 2% of the memory used by Python.
    • Python and Perl use 3% of the memory required by Java.

C is the most energy-efficient language

Among the languages analyzed, C came out on top. And why is that? It’s a low-level language that enables better control of hardware resources when mastered and correctly implemented. This efficiency translates into faster execution speeds and minimal memory usage. This is exactly what we should be aiming for in the current situation, except that extraordinarily little software is developed in low-level languages today.


In some cases, running the most resource-intensive operations on local infrastructure makes more sense than in the Cloud.


What are the practical implications for business?

It’s in the company’s interest to use well-programmed, resource-efficient software. Primarily, it saves time. But, wherever possible, they should run their most resource-hungry calculations on-premises rather than in the Cloud.

Time savings

Let’s talk about time savings first. In 2023, we surveyed 400 IT managers in companies practicing data science. For 47% of respondents, computing speed was one of their priorities for deploying future solutions in their company.

energy efficiency Financial gain

The Market Research Agency IntoTheMinds surveyed 400 IT managers in 4 countries (France, Germany, UK, USA) on expected future improvements in data solutions.

If you’re a loyal reader of this blog, you may remember my benchmarks between ETL solutions. One of them, Anatella, stood out for its outstanding performance. My tests showed performance gains of up to x20Anatella was programmed using low-level languages (C, C++, and Assembler). Its competitors used technologies based on Java in particular and were, therefore, unable to keep up. Every IT manager should learn the languages used to program the commercial software solutions they acquire.

Please consult us for your IT market research

Financial gain

Whatever the type of software, it’s important to remember that running it in the Cloud can be a bad financial calculation. Since Cloud providers’ business model is to sell you computing minutes, what interest would they have in speeding up the processing of your operations?

energy efficiency Financial gain

IntoTheMinds asked 400 IT managers about their preferred payment model for data solutions.

Regarding parallel computing in particular, Amdahl’s Law shows that the marginal gain in speed decreases with the number of processors. Mobilizing more and more processors (and therefore spending more money) won’t ultimately be a financially attractive solution for your heaviest operations.

That’s why it’s a clever idea to consider running the most resource-intensive operations on local infrastructure rather than in the Cloud. Not only will you avoid recurring bills from your cloud provider, but you’ll also avoid the stress of not knowing what you’ll have to pay at the end of the month. I say this because I’ve already had to deal with this problem on behalf of a customer.



Posted in Data & IT, Strategy.

Post your opinion

Your email address will not be published. Required fields are marked *