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

Cryptography and Information Theory (Coursera) Coursera
University of Colorado System

Cryptography and Information Theory (Coursera)

This course combines cryptography (the techniques for protecting information from unauthorized access) and information theory (the study of information coding and transfer). More specifically, the course studies cryptography from the information-theoretical perspectives and discuss the concepts such as entropy and the attacker knowledge capabilities, e.g., Kerckhoff's Principle. It also contrasts information-theoretic security and computational security to highlight the different train of thoughts that drive the cryptographic algorithmic construction and the security analyses.

Jul 6th 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.

Jul 6th 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.

Jul 6th 2026
4 Weeks
Social Network Analysis (Coursera) Coursera
University of California, Davis

Social Network Analysis (Coursera)

This course is designed to quite literally ‘make a science’ out of something at the heart of society: social networks. Humans are natural network scientists, as we compute new network configurations all the time, almost unaware, when thinking about friends and family (which are particular forms of social networks), about colleagues and organizational relations (other, overlapping network structures), and about how to navigate delicate or opportunistic network configurations to save guard or advance in our social standing (with society being one big social network itself).

Jul 6th 2026
5-12 Weeks
3D Interaction Design in Virtual Reality (Coursera) Coursera
University of London,Goldsmiths, University of London

3D Interaction Design in Virtual Reality (Coursera)

This course will teach you about one of the most important aspects of VR, how you interact with a VR world. Virtual Reality is completely different from an on screen app or game. You are completely immersed in a VR world, so it doesn't make sense to interact only through buttons or menus. You will get the most out of VR if you can interact with the world just as you would with the real world: with your natural body movements.

Jul 6th 2026
4 Weeks
Peer-to-Peer Protocols and Local Area Networks (Coursera) Coursera
University of Colorado System

Peer-to-Peer Protocols and Local Area Networks (Coursera)

In this course, we discuss peer-to-peer protocols and local area networks. Part one in this course is to answer the question of how does a peer-to-peer protocol deliver reliable data transfer service across unreliable transmission lines or networks. We focus on several medium access control protocols and their performance analysis. In the second part, we discuss how medium access control protocols coordinate the access to the communication channel so that information gets through from a source to a destination in the same broadcast local area network. We further discuss local area network and wireless LAN.

Jul 6th 2026
5-12 Weeks
Parallel programming (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm.

Jul 6th 2026
4 Weeks
Concurrent Programming in Java (Coursera) Coursera
Rice University

Concurrent Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability).

Jul 6th 2026
4 Weeks
Approximation Algorithms Part II (Coursera) Coursera
École normale supérieure

Approximation Algorithms Part II (Coursera)

This is the continuation of Approximation algorithms, Part 1. Here you will learn linear programming duality applied to the design of some approximation algorithms, and semidefinite programming applied to Maxcut. By taking the two parts of this course, you will be exposed to a range of problems at the foundations of theoretical computer science, and to powerful design and analysis techniques.

Jul 6th 2026
4 Weeks
Packet Switching Networks and Algorithms (Coursera) Coursera
University of Colorado System

Packet Switching Networks and Algorithms (Coursera)

In this course, we deal with the general issues regarding packet switching networks. We discuss packet networks from two perspectives. One perspective involves external view of the network, and is concerned with services that the network provides to the transport layer that operates above it at the end systems. The second perspective is concerned with the internal operation of a network, including approaches directing information across the network, addressing and routing procedures, as well as congestion control inside the network.

Jul 6th 2026
5-12 Weeks
Proactive Computer Security (Coursera) Coursera
University of Colorado System

Proactive Computer Security (Coursera)

I’ve heard this before – “I’m not sure my computer security practices are working”. I reply “Have you tested them?” This course is the fourth and final course in the Practical Computer Security specialization. In this course, you’ll learn how to proactively test what you have put in place to protect your data. In the first week you’ll be able to discuss the basics of deterrents and how to “trick” attackers into believing they’ve hit a goldmine of data away from your real systems. In week 2, you’ll be able to understand and discuss the steps of penetration testing methodology.

Jul 6th 2026
5-12 Weeks