Seminar „Energy-Efficient Programming“


Energy consumption is already recognized as the crucial factor that will limit the performance of future microprocessors, leading to the design and adoption of heterogeneous architectures and dark silicon. At end of the spectrum, mobile computing devices need to be equipped with low-power hardware components to maximize their battery life. This constraint, particularly from the embedded and mobile market segments, is forcing hardware manufacturers to improve their designs for better energy efficiency. Apart from mobile devices and embedded systems, reducing energy consumption in today's desktop computers is also crucial so as to minimize power bills. High Performance Computing (HPC) is another area where power consumption is one of the main bottlenecks in order to achieve performance constraints required by scientific applications. Processor, memory and hard disks nowadays feature low-power modes to trade-off performance for power by applying energy-friendly techniques such as dynamical voltage and frequency scaling (DVFS) or the idle states, in order to promote idle cores to low-consuming states. However, these mechanisms have to be used carefully, though, as the application runtime increase may outweigh the power decrease such that the total energy is increased.

In this sense, much of the progress towards increasing energy-awareness in today’s hardware has already been done, but demands for a tight interaction with the system software (i.e., the operating system). Thus, it is clear that much remains to be done in the software side in order to leverage the power-saving mechanisms that the hardware provides. In general, a holistic approach in order to expose energy considerations to higher-level software is needed to enable a whole new set of energy optimizations.

The main goal this seminar is to find out the best practices, programming techniques and guidelines for increasing energy-awareness while preserving the performance of applications running on today's architectures. This seminar will be given in English.

Die Themenvergabe und die Terminabsprache erfolgt in einem Vorbesprechungstermin und über die Veranstaltungsmailingliste.

Beachten Sie auch unsere allgemeinen organisatorischen Hinweise zu Seminaren.

Target audience

Das Seminar eignet sich für Studierende der Informatik in den Diplom- und Bachelorstudiengängen. Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.

Interessierte Zuhörer sind auch herzlich willkommen.

Date and time

Zeit Mittwoch 10–12 Uhr
Ort DKRZ, Raum 034
Beginn Mi, 15. Okt. 2014, 10:15 Uhr
Vorbesprechung Mi, 15. Okt. 2014, 10:15 Uhr
Mailingliste EEP-1415


List of topics

  1. Core energy efficiency - Soll 1)
    • CPU, memory efficiency / costs moving data
    • Code: efficient / inefficient data movement
  2. Compiler-Driven Energy Efficiency - Lysenko 2)
    • Compiler takes energy into account to optimize for it.
    • Code-examples showing energy (in)efficient code == same run-time.
  3. Energy-Efficient Batch Schedulers - not yet assigned 3)
    • Strategy, LRZ
    • No code.
  4. Energy-Efficiency in Virtualized Systems - Thiel 4)
    • Over-provisioning, overhead, hardware acceleration.
    • Issues with Vectorized code, instructions that are affected: AVX2 not exported in VM?
    • Code snippets (with embedded ASM) showing specialized hardware acceleration stuff for VMs.
  5. Energy-savings in Storage Systems Reliability vs. Energy-Efficiency - Traut 5)
    • Spinning disks vs. idle vs. loaded.
    • SSDs, Storage class memory
  6. Energy-Aware Programming Techniques (use of data structures, loops, etc.) - Lohmann 6)
    • Programming: lot of code
  7. Energy-Efficiency and Performance Trade-offs of Data-reduction techniques - Dobert 7)
    • Compression, de-dup, NOT STORING, recomputing.
    • Code: measure total energy
  8. Energy-Efficiency in Operating Systems - Brömstrup 8)
    • How Linux kernel handles power-aware hardware mechanisms?
    • busy loops, basic mechanisms, govenors
    • Code: reveal issues
  9. Avoiding Wakeup in Processors - not yet assigned 9)
    • Timer coalescing, tickless kernel
    • Code: example benchmark measuring the impact of this
  10. Energy-Efficiency in Mobile Devices - Wollmer 10)
    • How Android tackles energy-efficiency on mobile devices?
    • Special features in mobile devices, how avoid ticks / wakeup at all / wakelocks, deep sleep.
  11. Energy-Efficiency in Communication - Hartz 11)
    • Infiniband vs. others. Protocols. Model & measure
    • Code: Zero Copy, RDMA benefit?
  12. Energy-Efficiency of Long-term Storage - Tolokonnikova 12)
    • Tape vs. disk and stuff
    • No code.
  13. Energy-Efficiency in the Data Center Installation - Fröbel 13)
    • Cooling, etc.
    • No code.
  14. Cost-efficiency vs. Energy-Efficiency - Lepak 14)
    • No code.
  15. Application-specific hardware vs. general purpose - Scharmacher 15)
    • FPGA: Convey are good for bit-ops
    • Maybe code found on the web.
    • Co-processors, GPUs, etc.

Rules for the presentations

  1. At least 3 weeks prior the date of the presentation, you should send your supervisor a list of bullet points (related to your topic) that you will include in your presentation.
  2. 2 weeks before the date of the presentation, you should send a draft of the slides of the presentation.
  3. 1 week before the date of the presentation, you should send an advanced/final version of the slides of the presentation.
  4. If we do not receive your slides 1 week prior the date of the presentation or in case of no show, your time slot will be cancelled and, therefore, you will fail.

You are advised to have face to face meetings with your supervisor in the beginning/meantime if you need help or solve questions. To do so, arrange in advance an appointment with your corresponding supervisor.


  • 19.11.2014 - Presentation session 1 - Room 034
  • 28.01.2015 - Presentation session 8 and discussion - Room 034
    • Presenter 1: „Application-specific hardware vs. general purpose“ - Scharmacher - Cancelled
    • Presenter 2: „Compiler-Driven Energy Efficiency“ - Lysenko - Cancelled
    • Discussion


  • The Datacenter as a Computer. An Introduction to the Design of Warehouse-Scale Machines. Luiz André Barroso and Urs Hölzle, Google Inc. Link
  • Energy Efficiency in HPC Systems. Ivan Rodero and Manish Parashar. Link
  • A Survey on Techniques for Improving the Energy Eciency of Large Scale Distributed Systems. Anne-Cécile Orgerie, Marcos Dias de Assunção, Laurent Lefèvre. Link
  • Software and Hardware Techniques for Power-Efficient HPC Networking. Torsten Hoefler. Link
  • The Green Computing Book: Tackling Energy Efficiency at Large Scale. Wu-chun Feng. Link
  • Energy-Efficient High Performance Computing. Measurement and Tuning. Laros III, J.H., Pedretti, K., Kelly, S.M., Shu, W., Ferreira, K., Van Dyke, J., Vaughan, C. Link
  • Long-term data storage:
1) , 2) , 3) , 13) , 14) , 16) , 17)
Manuel Dolz
4) , 7) , 9) , 10)
Michael Kuhn
5) , 6) , 11) , 15)
Julian Kunkel
8) , 12)
Konstantinos Chasapis