Conscious of their environmental impact, companies are seeking innovative solutions to reduce energy consumption of their services. Cloud technology provides an opportunity to optimize energy usage and contribute to a more sustainable and environmentally friendly IT infrastructure.
It helps achieve cost savings as a shared pool of IT resources and services reduce the need for IT equipment, improve efficiency, leverage technological advancements, and focus on core business activities. Better scalability and flexibility lead to improved performance and cost-effectiveness for Cloud service users: a shared pool of on demand access resources mean you can easily transform your architecture, scale it, try new types of architecture, etc. Of course, decreasing energy consumption also helps support sustainability goals and demonstrate corporate responsibility.
Partnering with Cloud service providers that prioritize energy efficiency can help companies establish themselves as leaders in sustainability within their industry, attracting environmentally conscious customers and partners while enhancing their reputation and contributing to a positive brand image.
During the CLOUD DAYS event, 3DS OUTSCALE presented SimuGreen, a simulator designed to help our clients and partners measure and optimize their energy consumption. This live session by Arthur Vervaet, Big Data and Artificial Intelligence PhD student at 3DS OUTSCALE, Maxime Dufour, open source developer at 3DS OUTSCALE, and Julia Soloveva, Master’s student at Isep Engineering School and the University of Vienna, explores the studies behind power efficiency in programming languages, introduces SimuGreen and the tests conducted, and presents the results achieved. Evgeny Vasyuk from 3DS OUTSCALE’s Data science team also greatly contributed to the project.
Watch below the replay of the presentation:
Power Efficiency of Programming Languages
Recent research supervised by Professor Joao Saraiva from Portugal was focused on studying the power efficiency of different programming languages. Findings from these studies have revealed significant differences in power consumption. For example, C was found to be 75 times more power efficient than Python in certain scenarios. While these results do not suggest that one should exclusively code in C, they emphasize the impact of programming language choices on the overall power efficiency of a system .
SimuGreen: A Powerful Simulator
SimuGreen is a simulator developed to estimate the energy consumption of a system based on its architecture and test scenarios. By providing scripts that define the target architecture and desired service operations, users can leverage SimuGreen to obtain accurate consumption estimates. The tool calculates the total power consumption of the system under specific scenarios, enabling quick and efficient benchmarking of multiple architectures.
SimuGreen utilizes a Cloud environment where virtual machines and hypervisors coexist. Users execute multiple runs of their system to account for variations in results caused by shared virtualization infrastructure. By averaging the estimations, SimuGreen provides a reliable power consumption figure.
During a hackathon organized by Sagemcom, 3DS OUTSCALE and Isep engineering school, 16 teams competed to reduce the power consumption of a given service, written in Python, using SimuGreen and TerraForm to deploy the service into a OUTSCALE Cloud. They tested through multiple estimation runs (due to the shared Cloud environment) software optimization techniques, such as code simplification and algorithmic improvements, proved effective in reducing power consumption. Hardware optimization, particularly tuning virtual machine specifications for specific components like databases, yielded further gains. Remarkably, even within the limited 24-hour timeframe, some teams achieved nearly a tenfold reduction in power consumption for the proposed system. These findings highlight the potential impact of SimuGreen and the importance of considering power efficiency in system design.
Two Main Optimization Approaches: Software Optimization and Hardware Optimization
Software Optimization: Teams identified code segments with high power costs through profiling and employed methods such as code simplification, refactoring, and algorithmic improvements. Teams also optimized SQL queries and explored the possibility of using compiled libraries or alternative frameworks.
Hardware Optimization: Given the Cloud environment, teams had the flexibility to tune virtual machine parameters to enhance performance. For example, they optimized disk input/output rates for components like databases to ensure optimal disk usage. These optimizations were conducted within a 24-hour timeframe and do not represent an exhaustive list of possibilities.
Watch the replay below to learn more about these tests!
Further Optimizations and Future Work
Julia, who worked on SimuGreen during her master’s thesis, made additional optimizations resulting in significant decreases in virtual machine and idle compute consumption, ultimately reducing overall energy consumption by around 58% (SimuGreen allows to use four metrics which are virtual machine consumption, idle compute consumption, traffic power consumption and the total energy consumption). In fact, rewriting the code in Java and merging the virtual machines resulted in virtual machine consumption decreasing by approximately 64% and idle compute consumption by around 77%. Execution time was also optimized by over 50% in certain cases.
Future enhancements for SimuGreen include incorporating memory consumption measurements, alongside energy and time comparisons, as explored in a scientific paper by Portuguese scientists. Additionally, presenting data in graphical format could simplify the tool’s usage, especially for students and researchers.
SimuGreen presents a powerful solution for companies seeking to measure and optimize their energy consumption. By leveraging SimuGreen’s simulator, businesses can benchmark and optimize multiple architectures quickly and efficiently. The hackathon results demonstrate the tool’s potential for substantial power consumption reduction. As SimuGreen continues to evolve, future optimizations and extensions will further enhance its capabilities in helping organizations achieve greater energy efficiency.
 Pereira, Rui, et al. “Energy efficiency across programming languages: how do energy, time, and memory relate?.” Proceedings of the 10th ACM SIGPLAN international conference on software language engineering. 2017.