everything.study
EN.601.620

Parallel Programming & Performance Engineering

3 Credits.

This course guides the learner to write efficient software with focus on exploiting hardware parallelism and efficient memory usage. Modern microprocessors are remarkably complex and implement parallelism at many levels, including instruction level, vectorization, pipelining, multicore, and memory. Simple or naïve implementations realize only a fraction of the performance available. Exploiting the capabilities or processors require an understanding of algorithms, computer architecture, systems (compilers, PL, OS) and how they interact. The course programs mostly in C/C++, because most performance-oriented software is written in these languages. It will also touch on at parallel programming in Python and CUDA for GPUs. Familiarity with Python required.Required course background: 601.226 and 601.229 or equiv, familiarity with Python. Students can earn credit for only one of EN.601.420 / EN.601.620 .

Sources