This document discusses cloud computing environments for high performance applications. It begins with an introduction to high performance computing and how cloud computing can provide scalable resources for HPC applications at a lower cost compared to traditional on-premise HPC systems. It then discusses different types of HPC applications and their requirements in more detail. The document also examines cluster-based HPC systems and Google's architecture for HPC in the cloud. It provides a performance analysis of several HPC cloud vendors and concludes with case studies of running HPC applications in the cloud.