Introduction to High-Performance and Parallel Computing (Coursera)

Introduction to High-Performance and Parallel Computing (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

After completing this course, you will be able to...
Describe the components of a high-performance distributed computing system
Describe the following types of parallel programming models and the situations in which they might be used
High-throughput computing
Shared memory parallelism
Distributed memory parallelism
Navigate a typical Linux-based HPC environment
Assess and analyze application scalability including weak and strong scaling
Quantify the processing, data and cost requirements for a computational project or workflow

Syllabus

WEEK 1
High Performance Computing (HPC) for Non-Computer Scientists
Get to know the basics of an HPC system. Users will learn how to work with common high performance computing systems they may encounter in future efforts. This includes navigating filesystems, working with a typical HPC operating system (Linux), and some of the basic concepts of HPC. We will also provide users some key information that is specific to the logistics of this course.

WEEK 2
Nuts and Bolts of HPC
During this week we will actually begin to use HPC infrastructure. Some concepts we will learn are - how to load software appropriately onto an HPC system, what the different types of nodes a user can expect to encounter on a system, and how to submit a job to conduct work, such as perform calculations.

WEEK 3
Basic Parallelism
In this module, we will introduce users to the nuances of memory on a high performance computing system. We will also cover some ways to conduct work on a system most efficiently. We will also introduce some beginning components of parallel programming.

WEEK 4
Evaluating Parallel Program Performance
In this module, we will continue to review topics related to using a high performance computing system most efficiently, including scaling your workflow measuring how efficient your work on a system is, and how to utilize as much of the computing resource as possible.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Approximation Algorithms Part I (Coursera) Coursera
École normale supérieure

Approximation Algorithms Part I (Coursera)

How efficiently can you pack objects into a minimum number of boxes? How well can you cluster nodes so as to cheaply separate a network into components around a few centers? These are examples of NP-hard combinatorial optimization problems. It is most likely impossible to solve such problems efficiently, so our aim is to give an approximate solution that can be computed in polynomial time and that at the same time has provable guarantees on its cost relative to the optimum.

Jun 8th 2026
5-12 Weeks
Cryptographic Hash and Integrity Protection (Coursera) Coursera
University of Colorado System

Cryptographic Hash and Integrity Protection (Coursera)

This course reviews cryptographic hash functions in general and their use in the forms of hash chain and hash tree (Merkle tree). Building on hash functions, the course describes message authentication focusing on message authentication code (MAC) based on symmetric keys. We then discuss digital signatures based on asymmetric cryptography, providing security properties such as non-repudiation which were unavailable in symmetric-cryptography-based message authentication.

Jun 8th 2026
4 Weeks
Introduction to Software Product Management (Coursera) Coursera
University of Alberta

Introduction to Software Product Management (Coursera)

This course highlights the importance and role of software product management. It also provides an overview of the specialization, as well as its goals, structure, and expectations. The course explains the value of process, requirements, planning, and monitoring in producing better software. Upon successful completion of this course, you will be able to: relate software product management to better software products; recognize the role of a software product manager; reflect on how Agile principles will improve your own projects.

Jun 8th 2026
2 Weeks
Asymmetric Cryptography and Key Management (Coursera) Coursera
University of Colorado System

Asymmetric Cryptography and Key Management (Coursera)

In asymmetric cryptography or public-key cryptography, the sender and the receiver use a pair of public-private keys, as opposed to the same symmetric key, and therefore their cryptographic operations are asymmetric. This course will first review the principles of asymmetric cryptography and describe how the use of the pair of keys can provide different security properties. Then, we will study the popular asymmetric schemes in the RSA cipher algorithm and the Diffie-Hellman Key Exchange protocol and learn how and why they work to secure communications/access.

Jun 8th 2026
4 Weeks
Reviews & Metrics for Software Improvements (Coursera) Coursera
University of Alberta

Reviews & Metrics for Software Improvements (Coursera)

This course covers techniques for monitoring your projects in order to align client needs, project plans, and software production. It focuses on metrics and reviews to track and improve project progress and software quality. What you will learn: apply techniques to measure and visualize project progress, integrate Agile review practices to increase project visibility; reflect on lessons learned in software projects through retrospective exercises; improve project and process quality through ongoing measurement

Jun 8th 2026
4 Weeks
Hacking and Patching (Coursera) Coursera
University of Colorado System

Hacking and Patching (Coursera)

In this MOOC, you will learn how to hack web apps with command injection vulnerabilities in a web site of your AWS Linux instance. You will learn how to search valuable information on a typical Linux systems with LAMP services, and deposit and hide Trojans for future exploitation. You will learn how to patch these web apps with input validation using regular expression. You will learn a security design pattern to avoid introducing injection vulnerabilities by input validation and replacing generic system calls with specific function calls.

Jun 8th 2026
4 Weeks
Classical Cryptosystems and Core Concepts (Coursera) Coursera
University of Colorado System

Classical Cryptosystems and Core Concepts (Coursera)

Welcome to Introduction to Applied Cryptography. Cryptography is an essential component of cybersecurity. The need to protect sensitive information and ensure the integrity of industrial control processes has placed a premium on cybersecurity skills in today’s information technology market. Demand for cybersecurity jobs is expected to rise 6 million globally by 2019, with a projected shortfall of 1.5 million, according to Symantec, the world’s largest security software vendor. According to Forbes, the cybersecurity market is expected to grow from $75 billion in 2015 to $170 billion by 2020.

Jun 8th 2026
3 Weeks
Foundations of Objective-C App Development (Coursera) Coursera
University of California, Irvine

Foundations of Objective-C App Development (Coursera)

An introduction to the Objective-C programming language. This will prepare you for more extensive iOS app development and build a foundation for advanced iOS development topics. Objective-C programming requires a Mac laptop or desktop computer. An iOS device is optional if the learner is willing to working exclusively with the simulator. Some learners have been able to work with an OS X virtual machine on Windows, but explaining how to do that is beyond the scope of this course.

Jun 8th 2026
4 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Jun 8th 2026
4 Weeks
Distributed Programming in Java (Coursera) Coursera
Rice University

Distributed Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of Distributed Programming in the context of Java 8. Distributed programming enables developers to use multiple nodes in a data center to increase throughput and/or reduce latency of selected applications. By the end of this course, you will learn how to use popular distributed programming frameworks for Java programs, including Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), as well as different approaches to combine distribution with multithreading.

Jun 8th 2026
4 Weeks