This document discusses parallel programming and Microsoft HPC (High Performance Computing). It describes different types of parallel programming architectures including single node with shared memory, single node with distributed memory, and multiple nodes with distributed memory. It also discusses on demand capacity. The document then lists some of the key capabilities of Microsoft HPC including resource utilization/allocation, job management, messaging between processes, and demand-based resource management. It provides examples of cluster topologies and management tools in Microsoft HPC. It also lists some applications that can run on HPC systems including MPI applications and Excel. Finally, it provides an example of using the HPC client API to start a session and send/receive messages to the broker.