Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-646: How to Write Fast Code II

Units:

12

Description:

The fast evolution and increasing complexity of computing platforms pose a significant challenge for developers of high-performance software for engineering, science, and consumer applications as it is becoming increasingly difficult to harness the available compute power on modern CPU, GPU and cluster platforms.

18-646 - How to Write Fast Code II will focus on the application of the techniques taught in 18-645 - How to Write Fast Code I to deconstruct software workloads to better leverage the power available on these very different compute platforms.

Students will learn how to expose concurrency opportunities in existing software code and exploit parallelism on multicore (CPU), manycore (GPU) and cluster computing architectures to accelerate their applications.

We will review the OpenMP API and SIMD (Single Instruction Multiple Data) intrinsics and leverage these constructors to explore and benchmark parallelization of software on multi-core CPU platforms. Next, we will introduce the CUDA programming language and discuss the challenges for parallel-computing on GPUs. Finally, we will introduce parallel-computing techniques for cluster computing using the Hadoop framework.

Students will apply the content from course lessons in group projects that accompany the course.


Last Modified: 2020-12-17 2:34PM

Current session:

This course is currently being offered.

Semesters offered:

  • Spring 2021
  • Spring 2016
  • Spring 2015
  • Fall 2013
  • Spring 2013