Green Computing

Study group of the Studienstiftung des deutschen Volkes in Leysin.

Topics

The current set of references may not be complete and is therefore subject to change. All listed references can be supplied on demand.

Principles of Energy-Aware Computing

15 August 2016 at 11:00

Introduction to the most important concepts and principles in the area of energy-aware computing.

Questions

Where is energy-aware computing required?

Where in a computer is most energy spent?

How much money is lost on wasted energy?

How can we mitigate wasting energy?

What are future developments?

Literature

Computer Architecture Techniques for Power-Efficiency

High-Performance Embedded Computing

A Survey of Techniques For Improving Energy Efficiency in Embedded Computing Systems

Basics of Computer Systems

16 August 2016 at 09:00

The fundamental building blocks of almost every computer system, a high level description of how they work, what they do and how they play together.

Questions

How can we identify and understand the basic building blocks of a computer system and their responsibilities without going into too much detail?

What components are those parts made of in general and, roughly, how do they fulfil their tasks?

How do these building blocks communicate and work together?

Who is in charge, what does the control flow look like and which channels are used to delegate tasks.

Roughly, how fast and energy efficient are the various parts or processes in comparison to each other?

Literature

Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture

Computer Organization and Design, The Hardware/Software Interface

Computer Architecture: A Quantitative Approach

Limits on Fundamental Limits to Computation

All About Memory

16 August 2016 at 10:15

A closer look on properties and usages of different types of memory.

Questions

What kinds of memory are there in a typical computer system?

How do they work on a hardware level and what are their properties with respect to volatility, feature size, speed, energy consumption, cost, etc.?

Given these properties, which type of memory is used in which parts of a computer system?

How does this all lead to the overall memory hierarchy?

How does the memory hierarchy differ for various computer systems (from supercomputers to embedded devices)?

What are some cutting edge methods to enhance memory size, speed and energy efficiency?

Literature

What Every Programmer Should Know About Memory

Computer Organization and Design, The Hardware/Software Interface

Computer Architecture: A Quantitative Approach

All About Processors

16 August 2016 at 11:30

A closer look on what is inside a processing unit and how it works.

Questions

What are the different parts of a typical CPU and what is each of them responsible for?

Are there any fundamental limitations on execution speed, throughput and power consumption?

How is a program executed, i.e., what is the fetch-(decode)-execute-(write) loop?

What are common issues arising in this execution cycle (see branching)?

How does pipelining work, why should we care and what are its limits?

Can we shed light onto the buzzwords simultaneous multithreading, hyperthreading, multitasking, superscalar architectures, SIMD and parallel computing and put them in context?

Literature

Computer Organization and Design, The Hardware/Software Interface

Computer Architecture: A Quantitative Approach

Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture

Programming Embedded Devices with C

17 August 2016 at 09:00

An overview of the programming techniques required to leverage embedded devices using the C programming language.

Questions

Very briefly, what are the bare essentials a beginner needs to know about C?

What is a pointer from the device's perspective and how can we declare / work with a pointer?

In short, what do I need to know and understand to become a pointer expert?

Why is C so popular for programming embedded devices and how do pointers fit in the picture?

What compilers / platforms exist and what are the main differences?

What are the greatest challenges using C with embedded devices?

How does one get started programming an Arduino or Texas Instruments device using the Arduino or Energia platform?

Literature

High-Performance Embedded Computing

The C Programming Language

Arduino Platform

Energia - An Open-Source Electronics Prototyping Platform

GPIO, I2C, and SPI on Embedded Devices

17 August 2016 at 10:45

Embedded devices typically do not only support completely custom output (GPIO), but also profit from standardized interfaces for communication. We will focus on I2C and SPI as two pivotal representatives.

Questions

What makes a pin a GPIO pin?

How does the I2C protocol look like?

What is a timing diagram and how can we use one to illustrate the details of the I2C protocol?

Can the specific implementation be abstracted away to understand the key features of any communication protocol?

Briefly, how does the SPI bus differ from I2C?

How do I2C and SPI compare with respect to speed, prevalence in industry and other aspects?

How can we use the GPIO pins of the Raspberry Pi and of an Arduino / a Texas Instruments device?

How does one get an Arduino or a Texas Instruments device to talk to a sensor via I2C?

Literature

I2C-Bus Specification

SPI Specification

High-Performance Embedded Computing

Arduino Platform

Energia - An Open-Source Electronics Prototyping Platform

Where Does the Power Go - the Physics

18 August 2016 at 09:00

To discuss energy efficiency we have to go down to the smallest building blocks - transistors. We explain the physics of CMOS components and thereby discover where most power is consumed.

Questions

What is a transistor in general, how is it made and what are its properties?

What are CMOS components, why do we care and what are their characteristics?

How do single transistors form logical units and what does the physical layout of a typical CMOS component, e.g., a NAND gate, look like?

In which ways is power dissipated in CMOS components?

Roughly, what are the key drivers of power dissipation and can we model that mathematically?

What is subthreshold and gate leakage?

What architectural techniques exist to reduce leakages?

Literature

Computer Architecture Techniques for Power-Efficiency Ch. 1 and 5

Power-Efficient System Design Ch. 1 and 2

Low-Power CMOS Circuits Ch. 1 and 3

Dynamic Voltage and Frequency Scaling

18 August 2016 at 10:15

A closer look on one of the most important power management aspects, dynamic adjustment of the supplied voltage and the effective clock frequency to current demands.

Questions

What role do supply voltage and clock frequency play in terms of power consumption?

How can dynamic voltage and frequency scaling (DVFS) be achieved?

What is the benefit that can be obtained in hardware vs. software?

What implementations exist on the market?

Is there any general advice you can give a computer system designer on supply voltage and clock frequency?

Literature

Computer Architecture Techniques for Power-Efficiency Ch. 3.1, 3.2, and 3.4

Power-Efficient System Design Ch. 2

The Energy/Frequency Convexity Rule: Modeling and Experimental Validation on Mobile Devices

Power-Efficient Memory and Caches

18 August 2016 at 11:30

As one of the most important parts of any computer systems, memory also adds substantialy to the overall power consumption. We will explore some advanced techniques to minimize energy waste.

Questions

Can you remind us quickly about memory organization and caches?

How can we quickly understand key drivers of energy consumption when it comes to different kinds of memory and caches?

What are the basic ideas to reduce power consumption of accessing memory both on the lower level (transistors) and the higher level (memory organization)?

How can one approach the lower level optimizations?

How are higher level ideas implemented? (Probably not all of them, choose some important ones.)

Literature

Power-Aware Design Methodologies Ch. 3

Computer Architecture Techniques for Power-Efficiency Ch. 4.2 - 4.12

Power-Efficient System Design Ch. 3 and 4

Security in Embedded Computing

19 August 2016 at 09:00

Everyone talks about the Internet of Things, but many underestimate the security implications. This talk discusses the problems and techniques to securely run software on embedded devices.

Questions

How are embedded devices different from normal computers when it comes to security concerns?

What kinds of software vulnerabilities exist not only in IoT devices but embedded systems in general?

How can communication be secured?

What are TPM and HSM?

What are the differences between a TPM and an HSM?

What other hardware aspects have to be considered to obtain high-security?

Literature

A Practical Guide to TPM 2.0

Computer Organization and Design, The Hardware/Software Interface

Security As a New Dimension in Embedded System Design

Better Than Worst-Case Computing

19 August 2016 at 10:45

Usually worst-case component specifications are used in component design. Given that most systems operate under typical conditions rather than worst-case conditions, this implies a significant performance cost.

Questions

What does worst-case specification mean?

On which levels do we find conservative worst-case design choices and why?

How much power is potentially lost by worst-case designs?

In which areas exists a significant discrepancy between the worst-case specification and the typical runtime conditions?

How can these descrepancies be exploited for performance improvements?

Why does frequency tuning work, e.g., for PC gamers?

What mechanism(s) can be used to lower the voltage automatically?

When is the inductance-caused power supply voltage-droop problem relevant?

What can be done in circuit design to improve efficiency, i.e., perform TCO?

What are the biggest challenges of better than worst-case design?

Literature

Computer Architecture Techniques for Power-Efficiency Ch. 3.5

Better Than Worst Case Design Progress and Opportunities

Opportunities and Challenges for Better Then Worst Case Design

Typical versus Worst Case Design in Networking

Going Beyond Worst-Case Specs with TEAtime

Speeding Up Processing with Approximation Circuits

Cloud Computing and Microservices: Overview and Concepts

22 August 2016 at 09:00

Everyone talks about the cloud yet many people don't have a proper understand of cloud computing. This talk discusses the most important details and concepts.

Questions

What is the definition of cloud computing?

What are IaaS, PaaS, and SaaS?

Where would cloud storage (e.g., Dropbox) be located?

Advantages (and disadvantages) of cloud computing?

What characteristics does a microservice show?

Why do microservices leverage cloud computing?

Can you show a sample microservice architecture?

Literature

The NIST Definition of Cloud Computing

Microservices - a definition of this new architectural term

Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy Web Applications in the Cloud

Modern Wireless Technologies

22 August 2016 at 10:15

An overview over state-of-the-art wireless communication technologies with the focus on security and power-awareness.

Questions

What technologies exists / are currently used?

What are their physical properties (e.g., frequency)?

How power intense are they?

What are the differences between Bluetooth and BTLE?

How does the WiFi protocol look like?

How does RFID work?

What is ZigBee?

Literature

Wireless Communications and Networks Ch. 13 - 15

Overview of Wireless Technologies for Organizing Sensor Networks

A Study of Efficient Power Consumption Wireless Communication Techniques/Modules for Internet of Things (IoT) Applications

High Performance Browser Networking Ch.5 - 7

From Ethernet to InfiniBand

22 August 2016 at 11:30

Data centers require high-throughput and low-latency network connections. This talk compares the ordinary Ethernet solution to InfiniBand.

Questions

What is the OSI model?

Which Ethernet standards / solutions are currently available?

What is InfiniBand?

What are the key advantages of InfiniBand over Ethernet?

What is RDMA and how can it be utilized?

How much power can be saved (primary and secondary effects) by using InfiniBand?

Literature

QPACE 2 and Domain Decomposition on the Intel Xeon Phi

Wireless Communications and Networks Ch. 3 and 4

InfiniBand and 10-Gigabit Ethernet for Dummies

High Performance Browser Networking Ch. 2 and 3

Different Methods of Cooling

24 August 2016 at 09:00

Heat dissipation and cooling is one of the big challenges for computer systems on all scales. We discuss various basic approaches.

Questions

How much heat do different systems from a small microprocessor to huge supercomputers and server farms produce?

Which cooling approaches are used for various systems?

How much money and energy is typically spent on cooling large systems?

How does air cooling work and how can we improve ordinary air cooling?

What kind of water cooling solutions exist?

What is immersion cooling?

Why don't we all use water cooling?

Can you describe the architecture of the cooling solution used by a standard data center?

Literature

Cooling - making efficient choices

Cooling the Data Center

Advances In High-Performance Cooling For Electronics

An Examination of CPU Cooling Technologies

Principles of Hot-Water Cooling

24 August 2016 at 10:45

Discussion on the application and realization of hot-water cooling.

Questions

Which large systems use hot-water cooling?

What is the benefit over ordinary water cooling?

Can you quantify the efficiency improvement compared to air cooling?

What is the standard water circuit diagram for this setup?

What are the biggest challenges on the hardware / construction side?

Literature

iDataCool: HPC with Hot-Water Cooling and Energy Reuse

QPACE 2 and Domain Decomposition on the Intel Xeon Phi

Cooling - making efficient choices

Evaluation of the Impact of Direct Warm-Water Cooling of the HPC Servers on the Data Center Ecosystem

Details of the ARM Architecture

25 August 2016 at 09:00

We explore the ARM architecture and why it is such a huge success.

Questions

What are the characteristics and differences of RISC and CISC architectures?

What are the key features of the ARM architecture?

How exactly can ARM chips reduce power consumption and heat dissipation compared to other architectures?

How successful are ARM chips in different fields / devices?

Can you go into some detail about the register set, the instruction set and the evolution of the pipeline in ARM architectures?

What would it take for a new or completely different architecture to be as successful and do you think this is possible in the near future?

Literature

ARM System Developer's Guide

Digital Design and Computer Architecture, ARM Edition

Computer Organization and Design, The Hardware/Software Interface The `Real stuff` sections on ARM

GPUs, Co-Processors, ASICs, and FPGAs

25 August 2016 at 10:15

We explore why GPUs are a common tool in high-performance computing, how heterogeneous system architecture works and what other specialized hardware components exist.

Questions

What are the characteristics of a GPU compared to a regular CPU?

Which properties makes GPUs attractive for high performance computing (HPC)?

What are the advantages and disadvantages of heterogeneous system design?

What are co-processors used for in HPC?

Can you describe an important example of a widely used co-processor in more detail?

What are ASICs and FPGAs and where do you see their potential in HPC and other large scale applications?

Literature

Heterogeneous Multi-core Architectures for High Performance Computing

QPACE 2 and Domain Decomposition on the Intel Xeon Phi

Computer Organization and Design, The Hardware/Software Interface Ch. B.12

Energy Efficient Distributed Computing Systems Ch. 18

Low-Level Software Optimization

25 August 2016 at 11:30

In high performance or energy limited applications every clock cycle counts. We explore how code can be optimized on lower levels.

Questions

Why would most code (e.g. normal if-then-else structures and loops) be slow when executed exactly like it is written?

Which issues can slow down execution / require unnecessary cycles that could in principle be circumvented?

Can you give an overview of the various possible techniques and what they aim at?

Which optimizations can be performed during compile time?

Can we still achieve optimizations during run time?

Literature

High-Performance Embedded Computing Ch. 3

Computer Architecture: A Quantitative Approach Ch. 3

Computer Architecture Techniques for Power-Efficiency Ch. 3.3

Scaling Towards Exaflops with Heterogeneous Architectures

26 August 2016 at 09:00

Homogeneous architectures seem to be outdated - these days specialized components are mixed to increase efficiency for predefined applications.

Questions

What are the problems of homogeneous systems?

What is the anticipated MTBF for an exaflop system?

How can heterogeneous architectures help to increase performance?

Which challenges are faced in the design of heterogeneous architectures?

Can you name 2-3 examples of real systems exhibiting an heterogeneous architecture?

What problems occur in the implementation of software for such systems?

Which components are mixed (and why), which won't be mixed (and why)?

Literature

A Survey of CPU-GPU Heterogeneous Computing Techniques

Programming Heterogeneous Systems

Heterogeneous Multi-core Architectures for High Performance Computing

Heterogeneous Processing: a Strategy for Augmenting Moore's Law

The Green500 as an Indicator for Green IT

26 August 2016 at 10:15

In recent years the list of the 500 most efficient supercomputers has gained importance and could be seen as an indicator for Green IT in general.

Questions

What requirements need to be fulfilled to enter the Green 500?

How can this list be seen as an indicator for Green IT?

What overlap exists between supercomputers and ordinary computers?

Why is Green IT necessary?

What trends can be observed and how do these trends usually develop?

Literature

HPC Power Efficiency and the Green500

The Importance of Being Low Power in High Performance Computing

Cooling the Data Center

Making a Case for Efficient Supercomputing

Missing an interesting topic? Contact us!

References

Previously mentioned literature.

Books

  • Will, Arthur, David, Challener, A Practical Guide to TPM 2.0 (2015), Apress, 978-1-43026-583-2.
  • Sloss, Andrew, Symes, Dominic, Wright, Chris, ARM System Developer's Guide (2004), Morgan Kaufmann, 978-1-55860-874-0.
  • Hennessy, John L., Patterson, David A., Computer Architecture: A Quantitative Approach (2011), Morgan Kaufmann, 978-0-12-383872-8.
  • Kaxiras, Stefanos, Martonosi, Margaret, Computer Architecture Techniques for Power-Efficiency (2008), Morgan and Claypool Publishers, 978-1-59829-208-4.
  • Patterson, David A., Hennessy, John L., Computer Organization and Design, The Hardware/Software Interface (2013), Morgan Kaufman, 978-0-12-407726-3.
  • Harris, Sarah L., Harris, David Money, Digital Design and Computer Architecture, ARM Edition (2015), Morgan Kaufmann, 978-0-12-800056-4.
  • Zomaya, Albert Y., Lee, Young Choon, Energy Efficient Distributed Computing Systems (2012), Wiley-IEEE Computer Society Press, 978-0-470-90875-4.
  • Wolf, Marilyn, High-Performance Embedded Computing (2014), Morgan Kaufmann, 978-0-12410-511-9.
  • Stokes, Jon, Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture (2007), No Starch Press, Inc., 978-1-59327-104-6.
  • Piguet, Christian, Low-Power CMOS Circuits (2005), CRC Press, 978-1-42003-650-3.
  • Graybill, Robert, Melhem, Rami, Power-Aware Computing (2013), Springer Science & Business Media, 978-1-47576-217-4.
  • Pedram, Massoud, Rabaey, Jan M., Power-Aware Design Methodologies (2007), Springer Science & Business Media, 978-0-30648-139-0.
  • Panda, Preeti Ranjan, Shrivastava, Aviral, Silpa, B.V.N., Gummidipudi, Krishnaiah, Power-Efficient System Design (2008), Springer, 978-1-44196-387-1.
  • Kernighan, Brian W., Ritchie, Dennis M., The C Programming Language (1988), Prentice Hall, 978-0-13110-362-7.
  • Stallings, William, Wireless Communications and Networks (2004), Pearson, 978-0-13191-835-1.

Papers

  • Mahmoud, Mahmoud Shuker, Mohamad, Auday A. H., A Study of Efficient Power Consumption Wireless Communication Techniques/Modules for Internet of Things (IoT) Applications (2016), AIT.
  • Mittal, Sparsh, Vetter, Jeffrey, A Survey of CPU-GPU Heterogeneous Computing Techniques (2015), ACM.
  • Mittal, Sparsh, A Survey of Techniques For Improving Energy Efficiency in Embedded Computing Systems (2014), arXiv:1401.0765v1.
  • Lasance, Clemens J. M., Advances In High-Performance Cooling For Electronics (2005), Electronics Cooling.
  • Carr, Jason D., An Examination of CPU Cooling Technologies (2014), dsiventures.
  • Cong, Jason, Duwe, Henry, Kumar, Rakesh, Li, Sen, Better Than Worst Case Design Progress and Opportunities (2014), Springer.
  • Januszewski, Radoslaw, Gilly, Ladina, Yilmaz, Erhan, Auweter, Axel, Svensson, Gert, Cooling - making efficient choices (2013), PRACE.
  • Woods, Andy, Cooling the Data Center (2010), ACM queue.
  • Villamizar, Mario, Garces, Oscar, Castro, Harold, Verano, Mauricio, Salamanca, Lorena, Casallas, Rubby, Gil, Santiago, Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy Web Applications in the Cloud (2015), IEEE.
  • Januszewski, Radoslaw, Meyer, Norbert, Nowicka, Joanna, Evaluation of the Impact of Direct Warm-Water Cooling of the HPC Servers on the Data Center Ecosystem (2014), Springer.
  • Uht, Augustus K., Going Beyond Worst-Case Specs with TEAtime (2004), IEEE.
  • Chiesi, Matteo, Heterogeneous Multi-core Architectures for High Performance Computing (2014), Dissertation.
  • NXP Semiconductors, Inc., I2C-Bus Specification (2014), NXP.
  • Markov, Igor L., Limits on Fundamental Limits to Computation (2014), arXiv:1408.3821.
  • Feng, Wu-Chun, Making a Case for Efficient Supercomputing (2003), ACM queue.
  • Lewis, James, Fowler, Martin, Microservices - a definition of this new architectural term (2014), ThoughtWorks.
  • Austin, Todd, Bertacco, Valeria, Blaauw, David, Mudge, Trevor, Opportunities and Challenges for Better Then Worst Case Design (2005), ACM.
  • Proskochylo, Artem, Vorobyov, Andrey, Zriakhov, Michail, Kravchuk, Alexandr, Akulynichev, Artem, Lukin, Vladimir, Overview of Wireless Technologies for Organizing Sensor Networks (2015), IEEE.
  • Kunzman, David M., Programming Heterogeneous Systems (2011), IEEE.
  • Bloch, Jacques, Georg, Peter, Glässle, Benjamin, Heybrock, Simon, Lohmayer, Robert, Mages, Simon, Mendl, Bernhard, Meyer, Nils, Pleiter, Dirk, Rappl, Florian, Solbrig, Stefan, Wettig, Tilo, QPACE 2 and Domain Decomposition on the Intel Xeon Phi (2015), arXiv:1502.04025v1.
  • NXP Semiconductors, Inc., SPI Specification (2014), NXP.
  • Kocher, Paul, McGraw, Gary, Raghunathan, Anand, Lee, Ruby, Security As a New Dimension in Embedded System Design (2004), ACM.
  • Lu, Shih-Lien, Speeding Up Processing with Approximation Circuits (2004), IEEE.
  • Vogeleer, De, Karel, Memmi, Gerard, Jouvelot, Pierre, Coelho, Fabien, The Energy/Frequency Convexity Rule: Modeling and Experimental Validation on Mobile Devices (2014), arXiv:1401.4655.
  • Feng, Wu-Chun, The Importance of Being Low Power in High Performance Computing (2005), CTWatch Quarterly.
  • Grance, Timothy, Mell, Peter, The NIST Definition of Cloud Computing (2011), NIST.
  • Dukkipati, Nandita, Ganjali, Yashar, Zhang-Shen, Rui, Typical versus Worst Case Design in Networking (2005), SemanticScholar.
  • Drepper, Ulrich, What Every Programmer Should Know About Memory (2007), FreeBSD.
  • Meyer, Nils, Ries, Manfred, Solbrig, Stefan, Wettig, Tilo, iDataCool: HPC with Hot-Water Cooling and Energy Reuse (2013), arXiv:1309.4887v1.