Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Unlock the power of modern computing systems with this hands-on specialization designed for scientists, engineers, scholars, and technical professionals. Whether you're working with large datasets, building machine learning models, or running complex simulations, high-performance computing (HPC) skills can significantly accelerate your work.
Throughout the specialization, you'll build a strong foundation in parallel and distributed computing. You’ll start by learning the basics of Linux environments, shell scripting, and strategies for writing optimized code. You’ll explore how to identify and resolve performance bottlenecks using profiling tools and gain a high-level understanding of modern HPC and cloud architectures. Finally, you’ll dive into parallel programming using the Message Passing Interface (MPI) for scalable code in distributed systems.
By the end of this specialization, you’ll be equipped with practical tools and techniques to write efficient, scalable code for high-performance environments. Prior experience with C, C++, or Python is recommended.
Syllabus
- Course 1: Introduction to High-Performance and Parallel Computing
- Course 2: Efficient Programming
- Course 3: Parallel Computing with MPI
Courses
-
This course introduces the fundamentals of high-performance and parallel computing. It is targeted to scientists, engineers, scholars, really everyone seeking to develop the software skills necessary for work in parallel software environments. These skills include big-data analysis, machine learning, parallel programming, and optimization. We will cover the basics of Linux environments and bash scripting all the way to high throughput computing and parallelizing code. We recommend you are familiar with either Fortran 90, C++, or Python to complete some of the programming assignments. After completing this course, you will familiar with: *The components of a high-performance distributed computing system *Types of parallel programming models and the situations in which they might be used *High-throughput computing *Shared memory parallelism *Distributed memory parallelism *Navigating a typical Linux-based HPC environment *Assessing and analyzing application scalability including weak and strong scaling *Quantifying the processing, data, and cost requirements for a computational project or workflow This course can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at https://www.coursera.org/degrees/master-of-science-data-science-boulder.
-
This course is targeted to scientists, engineers, scholars, or anyone seeking to solve problems efficiently in high-performance computing environments or in the cloud. Students completing this course will have a basic understanding of how to find bottlenecks in their programs as well as how to address those bottlenecks. The course will provide a high-level introduction to modern compute node architectures of high-performance and cloud computing instances. This course can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at https://www.coursera.org/degrees/master-of-science-data-science-boulder.
-
This course is designed for scientists, engineers, students, and professionals looking to develop efficient solutions for high-performance and distributed computing systems. It focuses on parallel programming using the Message Passing Interface (MPI), a standard for scalable communication across multiple processors. Learners should have basic programming experience in C or C++ and familiarity with Linux. No prior knowledge of MPI is required. This course can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at https://www.coursera.org/degrees/master-of-science-data-science-boulder.
Taught by
Shelley Knuth and Thomas Hauser