When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 5 modules in this course
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.
This module focuses on the key concepts and techniques for transforming serial algorithms into parallel solutions using the Message Passing Interface (MPI). You will explore the principles of message passing, synchronization, and parallel thinking, equipping them with the skills to efficiently utilize parallel computing in their projects.
Distributed Weather Prediction System Using MPI•60 minutes
Advanced Communication Techniques in MPI
Module 2•2 hours to complete
Module details
This module delves into the advanced communication techniques in MPI, focusing on transforming serial algorithms into parallel implementations. You will learn about nonblocking communication, point-to-point communication, and the intricacies of blocking sends and receives, along with strategies to avoid deadlock in their parallel applications.
What's included
5 videos1 assignment1 programming assignment
Show info about module content
5 videos•Total 28 minutes
Parallelizing a Serial Algorithm•7 minutes
Point to Point Communication Overview•6 minutes
Blocking Sends and Receives•7 minutes
Nonblocking Communication•4 minutes
Deadlock•4 minutes
1 assignment•Total 15 minutes
Module Quiz•15 minutes
1 programming assignment•Total 60 minutes
Distributed Array Summation using MPI Scatter and Gather•60 minutes
Performance Optimization in Parallel Computing
Module 3•2 hours to complete
Module details
This module focuses on enhancing the performance of parallel applications using nonblocking communication and effective load-balancing strategies. You will learn how to implement nonblocking communication, overlap communication with computation, and achieve optimal load distribution to maximize speedup in their MPI programs.
What's included
4 videos1 assignment1 programming assignment
Show info about module content
4 videos•Total 21 minutes
Implementing Nonblocking Communication •5 minutes
Overlapping Communication and Computation•3 minutes
Load Balancing Overview•6 minutes
Load Balancing and Speedup•7 minutes
1 assignment•Total 15 minutes
Module Quiz•15 minutes
1 programming assignment•Total 60 minutes
Parallel Ring Communication using Non-blocking MPI•60 minutes
Advanced MPI Concepts – Communicators and Derived Datatypes
Module 4•2 hours to complete
Module details
This module explores advanced parallel computing concepts using MPI, focusing on communicator creation, domain decomposition, and derived datatypes. You will learn to create custom communicators for process coordination and effectively divide computational domains. The module covers MPI's derived datatypes, including contiguous, vector, indexed, and struct types, enabling efficient communication for both regular and irregular data patterns in high-performance applications.
What's included
7 videos1 assignment1 programming assignment
Show info about module content
7 videos•Total 30 minutes
MPI Communicators•4 minutes
Communicator Creation Walkthrough•4 minutes
Communicators and Domain Decomposition•3 minutes
Derived Datatypes Overview•4 minutes
Derived Datatypes - Contiguous and Vector•6 minutes
Derived Datatypes - Indexed and Struct•5 minutes
Week 4 Wrap-Up•3 minutes
1 assignment•Total 15 minutes
Module Quiz•15 minutes
1 programming assignment•Total 60 minutes
MPI Derived Type for Complex Data Structures•60 minutes
Parallel I/O in MPI and HDF5 for High-Performance Computing
Module 5•1 hour to complete
Module details
This module focuses on parallel I/O in MPI, emphasizing efficient data management in high-performance computing. You will learn the principles of MPI I/O and explore practical examples of concurrent data operations. The module also introduces HDF5, a widely used data model and file format in scientific computing, highlighting its features for managing large datasets. By the end, students will be equipped to implement effective parallel I/O strategies using MPI and HDF5 in their applications.
What's included
5 videos1 assignment
Show info about module content
5 videos•Total 26 minutes
Parallel I/O•6 minutes
MPI I/O Overview•4 minutes
MPI I/O Examples•7 minutes
HDF5 Overview Part 1•5 minutes
HDF5 Overview - Part 2•4 minutes
1 assignment•Total 30 minutes
Module Quiz•30 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
CU Boulder is a dynamic community of scholars and learners on one of the most spectacular college campuses in the country. As one of 34 U.S. public institutions in the prestigious Association of American Universities (AAU), we have a proud tradition of academic excellence, with five Nobel laureates and more than 50 members of prestigious academic academies.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.