====== Seminar „Energy-Efficient Programming“ ======
===== Description =====
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 [[:teaching:organisatorische_hinweise:seminar_proseminar#seminare|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 || [[http://maps.google.com/maps?q=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hl=de&cd=2&ei=BUxYS-GvKIuLOKaotbgJ&sig2=Kv8CBjHeXm8lAVC3XxRrIQ&ie=UTF8&view=map&cid=262423906154203330&ved=0CBsQpQY&hq=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hnear=&z=16&iwloc=A|DKRZ]], Raum 034 ||
|| Beginn || Mi, 15. Okt. 2014, 10:15 Uhr ||
|| Vorbesprechung || Mi, 15. Okt. 2014, 10:15 Uhr ||
|| Mailingliste || [[http://wr.informatik.uni-hamburg.de/listinfo/eep-1415|EEP-1415]] ||
===== Lecturers =====
* [[People:Alumni:Manuel Dolz]] (contact person)
* [[People:Alumni:Michael Kuhn]]
* [[People:Alumni:Julian Kunkel]]
* [[People:Alumni:Konstantinos Chasapis]]
* [[People:Thomas Ludwig]]
===== List of topics =====
- Core energy efficiency - **Soll** ((Manuel Dolz))
* CPU, memory efficiency / costs moving data
* ACPI, ECC, DVFS
* Code: efficient / inefficient data movement
- Compiler-Driven Energy Efficiency - **Lysenko** ((Manuel Dolz))
* Compiler takes energy into account to optimize for it.
* Code-examples showing energy (in)efficient code == same run-time.
- Energy-Efficient Batch Schedulers - **not yet assigned** ((Manuel Dolz))
* Strategy, LRZ
* No code.
- Energy-Efficiency in Virtualized Systems - **Thiel** ((Michael Kuhn))
* 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.
- Energy-savings in Storage Systems Reliability vs. Energy-Efficiency - **Traut** ((Julian Kunkel))
* Spinning disks vs. idle vs. loaded.
* SSDs, Storage class memory
- Energy-Aware Programming Techniques (use of data structures, loops, etc.) - **Lohmann** ((Julian Kunkel))
* Programming: lot of code
- Energy-Efficiency and Performance Trade-offs of Data-reduction techniques - **Dobert** ((Michael Kuhn))
* Compression, de-dup, NOT STORING, recomputing.
* Code: measure total energy
- Energy-Efficiency in Operating Systems - **Brömstrup** ((Konstantinos Chasapis))
* How Linux kernel handles power-aware hardware mechanisms?
* busy loops, basic mechanisms, govenors
* Code: reveal issues
- Avoiding Wakeup in Processors - **not yet assigned** ((Michael Kuhn))
* Timer coalescing, tickless kernel
* Code: example benchmark measuring the impact of this
- Energy-Efficiency in Mobile Devices - **Wollmer** ((Michael Kuhn))
* How Android tackles energy-efficiency on mobile devices?
* Special features in mobile devices, how avoid ticks / wakeup at all / wakelocks, deep sleep.
- Energy-Efficiency in Communication - **Hartz** ((Julian Kunkel))
* Infiniband vs. others. Protocols. Model & measure
* Code: Zero Copy, RDMA benefit?
- Energy-Efficiency of Long-term Storage - **Tolokonnikova** ((Konstantinos Chasapis))
* Tape vs. disk and stuff
* No code.
- Energy-Efficiency in the Data Center Installation - **Fröbel** ((Manuel Dolz))
* Cooling, etc.
* No code.
- Cost-efficiency vs. Energy-Efficiency - **Lepak** ((Manuel Dolz))
* No code.
- Application-specific hardware vs. general purpose - **Scharmacher** ((Julian Kunkel))
* FPGA: Convey are good for bit-ops
* Maybe code found on the web.
* Co-processors, GPUs, etc.
===== Rules for the presentations =====
- 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 weeks before the date of the presentation, you should send a draft of the slides of the presentation.
- 1 week before the date of the presentation, you should send an advanced/final version of the slides of the presentation.
- 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.
===== Schedule =====
* **15.10.2014** - Introduction session 1 - **Room 034**
* {{:teaching:wintersemester_2014_2015:eep-1415-introduction.pdf|Introduction}} ((Manuel Dolz))
* **22.10.2014** - Introduction session 2 - **Room 034**
* {{:teaching:wintersemester_2014_2015:eep-1415-eehpc.pdf|„Paving the Way towards Energy-Aware High Performance Computing“}} ((Manuel Dolz))
* Assignment of topics
* **19.11.2014** - Presentation session 1 - **Room 034**
* Presenter 1: „Energy-Efficiency in the Data Center Installation“ - **Fröbel** - //Cancelled//
* Presenter 2: {{:teaching:wintersemester_2014_2015:eep-1415-soll-core-energy-efficiency.pdf|„Core energy efficiency“}} {{:teaching:wintersemester_2014_2015:eep-1415-soll-core-energy-efficiency-notes.pdf|Notes}} - **Soll**
* **26.11.2014** - Presentation session 2 - **Room 034**
* Presenter 1: {{:teaching:wintersemester_2014_2015:eep-1415-lepak-cost-vs-energy.pdf|„Cost-efficiency vs. Energy-Efficiency“}} {{:teaching:wintersemester_2014_2015:eep-1415-lepak-cost-vs-energy-notes.pdf|Notes}} - **Lepak**
* Presenter 2: {{:teaching:wintersemester_2014_2015:eep-1415-hartz-energy-efficient-communication.pdf|„Energy-Efficiency in Communication“}} {{:teaching:wintersemester_2014_2015:eep-1415-hartz-energy-efficient-communication-notes.pdf|Notes}} - **Hartz**
* **03.12.2014** - Presentation session 3 - **Room 023**
* Presenter 1: {{:teaching:wintersemester_2014_2015:eep-1415-lohmann-programming-techniques.pdf|„Energy-Aware Programming Techniques“}} {{:teaching:wintersemester_2014_2015:eep-1415-lohmann-programming-techniques-notes.pdf|Notes}} - **Lohmann**
* Presenter 2: {{:teaching:wintersemester_2014_2015:eep-1415-broemstrup-operating-systems.pdf|„Energy-Efficiency in Operating Systems“}} {{:teaching:wintersemester_2014_2015:eep-1415-broemstrup-operating-systems-notes.pdf|Notes}} - **Brömstrup**
* **10.12.2014** - Presentation session 4 - **Room 034**
* Presenter 1: {{:teaching:wintersemester_2014_2015:eep-1415-thiel-energy-efficiency-in-virtualized-systems.pdf|„Energy-Efficiency in Virtualized Systems“}} {{:teaching:wintersemester_2014_2015:eep-1415-thiel-energy-efficiency-in-virtualized-systems-notes.pdf|Notes}} - **Thiel**
* Presenter 2: „Compiler-Driven Energy Efficiency“ - **Lysenko** - //Moved//
* **17.12.2014** - Presentation session 5 - **Room 034**
* Presenter 1: „Energy-savings in Storage Systems Reliability vs. Energy-Efficiency“ - **Traut** - //Cancelled//
* Presenter 2: {{:teaching:wintersemester_2014_2015:eep-1415-dobert-data-reduction.pdf|„Energy-Efficiency and Performance Trade-offs of Data-reduction techniques“}} {{:teaching:wintersemester_2014_2015:eep-1415-dobert-data-reduction-notes.pdf|Notes}} - **Dobert**
* **14.01.2015** - Presentation session 6 - **Room 034**
* Presenter 1: {{:teaching:wintersemester_2014_2015:eep-1415-tolokonnikova-long-term-storage.pdf|„Energy-Efficiency of Long-term Storage“}} {{:teaching:wintersemester_2014_2015:eep-1415-tolokonnikova-long-term-storage-notes.pdf|Notes}}- **Tolokonnikova**
* Presenter 2: „Energy-Efficiency in Mobile Devices“ - **Wollmer** - //Cancelled//
* **21.01.2015** - Presentation session 7 - **Room 034**
* Presenter 1: {{:teaching:wintersemester_2014_2015:eep-1415-beckert-hirsch-ardupower.pdf|„Integration of a Microcontroller-based Power Measurement Device“}} - **Beckert, Hirsch**
* **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
===== References =====
* //The Datacenter as a Computer. An Introduction to the Design of Warehouse-Scale Machines.// Luiz André Barroso and Urs Hölzle, Google Inc. [[http://www.morganclaypool.com/doi/pdf/10.2200/S00193ED1V01Y200905CAC006|Link]]
* //Energy Efficiency in HPC Systems.// Ivan Rodero and Manish Parashar. [[http://onlinelibrary.wiley.com/doi/10.1002/9781118342015.ch3/summary|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. [[http://perso.ens-lyon.fr/laurent.lefevre/Documents/energy_acm_survey.pdf|Link]]
* //Software and Hardware Techniques for Power-Efficient HPC Networking.// Torsten Hoefler. [[http://htor.inf.ethz.ch/publications/img/hoefler-green-networking.pdf|Link]]
* //The Green Computing Book: Tackling Energy Efficiency at Large Scale.// Wu-chun Feng. [[http://www.crcpress.com/product/isbn/9781439819876|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. [[http://www.springer.com/computer/communication+networks/book/978-1-4471-4491-5|Link]]
* [[http://superfri.org/superfri/article/view/20/6|Exascale Storage Systems]]
* Long-term data storage:
* [[https://www.spectralogic.com/index.cfm?fuseaction=home.displayFile&DocID=4504|CyARK]]
* [[http://superfri.org/superfri/article/view/20/6|Exascale Storage Systems]]