This document discusses power consumption and energy efficiency techniques in high performance computing (HPC) systems. It begins by introducing HPC and how increased computing power has also increased energy consumption, creating economic, ecological and technical problems. It then discusses approaches to reduce power consumption, including thermal-aware hardware design and power-aware software design. Specific techniques covered include dynamic voltage and frequency scaling, power allocation algorithms, and power management at the CPU, component and virtualized datacenter levels.