- Level Foundation
- Duration 14 hours
- Course by University of Colorado Boulder
-
Offered by
About
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.Modules
Course Overview and Syllabus
1
Discussions
- Introduce Yourself
1
Videos
- Course Overview
3
Readings
- Earn Academic Credit for your Work!
- Course Support
- Course Syllabus
Technical Help and Discussions
1
Discussions
- Technical Help and Discussions
JupyterLab and Submitting Assignments
2
Videos
- Tour of JupyterLab
- Submitting Assignments
Practice Assignment Submission
- Practice Assignment Submission
Introduction to Linux
2
Videos
- Linux - Part 1
- Linux - Part 2
Accessing Remote Systems
1
Videos
- Accessing Remote Systems
Filesystems
1
Videos
- Filesystems
Bash Scripting
2
Videos
- Bash Scripting, Part 1
- Bash Scripting - Part 2
Module Assignments
- Bash Scripting
1
Quiz
- Week 1 Quiz
HPC Architecture
1
Videos
- HPC Architecture
Software
1
Videos
- Software
Allocations
1
Videos
- Allocations
Node Types
1
Videos
- Node Types
Job Submission with Slurm
2
Videos
- Job Submission with Slurm - Part 1
- Job Submission with Slurm - Part 2
Module Assignments
- Week 2 - Submitting Jobs with Slurm - Part 1
- Week 2 - Submitting Jobs With Slurm - Part 2
1
Quiz
- Week 2 Quiz
Simple Application Timing
1
Videos
- Simple Application Timing
Serial vs. Parallel Processing
2
Videos
- Serial vs. Parallel Processing - Part 1
- Serial vs. Parallel Processing - Part 2
Parallel Memory Models
1
Videos
- Parallel Memory Models
Data vs. Task Parallelism
1
Videos
- Data vs. Task Parallelism
High Throughput Computing
1
Videos
- High Throughput Computing
Module Assignments
- Simple Application Timing
1
Quiz
- Week 3 Quiz
How to Parallelize Code
1
Videos
- How to Parallelize Code
Speedup and Parallel Efficiency
1
Videos
- Speedup and Parallel Efficiency
Scalability
1
Videos
- Scalability
Limits to Parallel Performance
1
Videos
- Limits to Scaling
Module Assignments
- Strong Scaling Study
- Weak Scaling Study
1
Quiz
- Week 4 Quiz
Course Summary
1
Readings
- Summary of This Course
Auto Summary
Unlock the power of high-performance and parallel computing with this foundational course designed for scientists, engineers, and data enthusiasts. Delve into the essentials of big data analysis, machine learning, parallel programming, and optimization, all within a high-performance computing (HPC) framework. Ideal for those familiar with Fortran 90, C++, or Python, this course will guide you through Linux environments, bash scripting, and advanced computing techniques. Under the expert guidance of CU Boulder's esteemed faculty, you'll explore various parallel programming models, high-throughput computing, shared and distributed memory parallelism, and scalability analysis. By the end, you'll be adept at navigating Linux-based HPC environments and quantifying computational project requirements. Spanning 840 hours, this course is part of CU Boulder’s Master of Science in Data Science (MS-DS) degree on Coursera, offering a flexible, performance-based admission without a traditional application process. Whether you're a professional in computer science, information science, or related fields, this course is your gateway to mastering high-performance computing. Join today with a Starter subscription and elevate your computational skills to new heights.

Shelley Knuth

Thomas Hauser