I’ve been thinking for a while about what software developers can do to contribute to sustainability. It’s not about specific use cases that aim to conserve resources, save energy and provide sustainable added value. Rather, it is about the question of what can be done during software development itself to handle the resource electricity as sparingly as possible. Two important parameters came to mind:
Utilization of the hardware in an optimal way: Especially in areas with high computational intensities such as AI, blockchain, various simulations, e.g., powerful hardware is needed, which quickly translates into high power consumption. So how can you optimize your hardware resources as a developer? By relying on massive parallelization: Processes are broken down into different subtasks that run synchronously (a task is broken down into roughly equal parts) on the one hand and asynchronously (tasks are executed asynchronously in parallel) on the other. Very few software systems have such parallelization because their configuration/programming is extremely complicated. In addition, scalability quickly deteriorates as the number of CPUs increases.
What you can do about it: Get a hardware chip with a basic configuration. Tasks are thus not only decomposed to different CPUs and their cores, but also to their hardware threads. This ensures that no cores consume power unused. To ensure scalability, interfaces are used to interact directly with the hardware. This saves a lot of execution overhead.
About 80% power can be saved with this method.
Another parameter is the programming language itself: Yes, heard correctly, the choice of the right programming language has an enormous influence on the power consumption. Recently, a Portuguese research team conducted a comparison of the runtime, memory usage and energy consumption of twenty-seven well-known software languages. They solved 10 different problems from the Computer Language Benchmark Game repository and monitored how these individual programming languages performed.
Here are the results:
The winner is C. Other good values have C++, Java and Rust. Shockingly, however, Python, the programming language in which most AI applications are written, scored very poorly. Python consumes 76 times (!) more energy than C and is 72 times slower.
If you want to develop systems that are sustainable in the future, there is no way around parallelization and the right choice of programming language.
 https://en.wikipedia.org/wiki/List_of_programming_languages_for_artificial_intelligence; https://www.bairesdev.com/blog/top-6-languages-for-artificial-intelligence/