In this course, two key aspects of High Performance Computing are addressed.
First, the main elements of modern computer and CPU architecture are reviewed, and the most important techniques for
single-core code optimization are examined. Second, the fundamental principles of parallel computation are introduced and defined.