High Performance Computing for Science and Engineering
COMPSCI 2050
Subject & Catalog Number
Course Information
Description
As manufacturing processes approach the physical limits of transistor density, efficient code must exploit parallelism to scale with available computing resources. Scientific software developers must therefore adopt a “think parallel” mindset to solve complex problems across academia, industry, and society. This course introduces parallel programming and its relationship to computer architectures, with an emphasis on high performance computing. Students will develop experience with programming models such as OpenMP, MPI, and CUDA, applying these techniques in homework and a term project.
Course Notes
This course was previously numbered CS 205.
Recommended Prep
The course assumes the student is comfortable reading and writing code in C++ and Python. Familiarity with Linux command line tools, particularly ssh and git, is also expected. While advanced C++ knowledge is not required, CS 2050 will not teach the basics of programming, and the class is likely unsuitable for first-year students. The course also assumes a working knowledge of mathematics used throughout science and engineering, including complex numbers, calculus, and linear algebra. A determined student who lacks one or two of these prerequisites might still manage to succeed in the course, but only if they are willing to work hard and use external resources to fill gaps in their knowledge.
Available for Harvard Cross Registration
NOTE: This course requires additional sections; you will be prompted to choose secondary components during the Add to Cart process