Parallel Programming Concepts (openHPI)

Parallel Programming Concepts (openHPI)

The openHPI online course “Parallel Programming Concepts” presents relevant theoretical and practical foundations for parallel programming. We show crucial theoretical ideas such as semaphores and actors, the architecture of modern parallel hardware, different programming models such as task parallelism, message passing and functional programming, and several patterns and best practices.

Since the very beginning of computer technology, processors have been built with ever-increasing clock frequencies and smarter optimizations for achieving a faster software execution. Developers and the software industry are used to applications becoming faster by merely exchanging the underlying hardware. However, since the beginning of the century it has become apparent that this approach no longer works.
Moore's law about the ever-increasing number of transistors per chip is still valid, but power consumption, thermal management and memory latency issues are making make serial code acceleration increasingly harder. Instead, hardware vendors now use additional transistors for multiple processing elements (‘cores’) per processor chip and deeper memory hierarchies. Modern hardware has the capability to transform any desktop, server, or even mobile system into some kind of parallel computer. This makes parallel programming the new default for application development. The exploitation of any additional horsepower from hardware is now in the responsibility of the software.
The openHPI online course “Parallel Programming Concepts” presents relevant theoretical and practical foundations for parallel programming. We show crucial theoretical ideas such as semaphores and actors, the architecture of modern parallel hardware, different programming models such as task parallelism, message passing and functional programming, and several patterns and best practices.
The course is suitable for all participants who are interested in getting a broader overview of parallelism, especially beyond the usage of multiple threads. Participants should have knowledge in at least one programming language - other skills are not necessary.

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

Related Courses

Learn to code with AI (Coursera) Coursera
Scrimba

Learn to code with AI (Coursera)

Imagine waking up tomorrow as a web developer. What would you want to build? With AI tools like ChatGPT, you're already a developer, regardless of your experience, if you know how to work with them. So in this course, you'll build functional, interactive front-end projects while learning how to write effective prompts and debug and refine your code with the help of AI.

Jun 24th 2026
2 Weeks
Interfacing with the Raspberry Pi (Coursera) Coursera
University of California, Irvine

Interfacing with the Raspberry Pi (Coursera)

The Raspberry Pi uses a variety of input/output devices based on protocols such as HDMI, USB, and Ethernet to communicate with the outside world. In this class you will learn how to use these protocols with other external devices (sensors, motors, GPS, orientation, LCD screens etc.) to get your IoT device to interact with the real world.

Jun 22nd 2026
4 Weeks
Grundlagen des Programmierens (openHPI) OpenHPI
Hasso-Plattner-Institut

Grundlagen des Programmierens (openHPI)

Dieser vierwöchige Kurs richtet sich an Schüler und andere Interessierte, die schon immer in die Welt des Programmierens heineinschnuppern wollten. Auf spielerische Art und Weise wird anhand der Programmiersprache Python eine Einführung in die faszinierende Welt des Programmierens und der Informationstechnologie gegeben.

Self Paced
4 Weeks
MPI: A Short Introduction to One-sided Communication (FutureLearn) FutureLearn
Partnership for Advanced Computing in Europe - PRACE

MPI: A Short Introduction to One-sided Communication (FutureLearn)

Learn the details of one-sided communication in MPI programming. Discover the advantages to one-sided communication in parallel programming. Message Passing Interface (MPI) is a key standard for parallel computing architectures. On this course, you’ll learn the essential concepts of one-sided communication in MPI, as well as the advantages of the MPI communication model.

No sessions available
2 Weeks
Parallel Programming in Java (Coursera) Coursera
Rice University

Parallel Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism.

Jun 22nd 2026
4 Weeks
Introduction to the Internet of Things and Embedded Systems (Coursera) Coursera
University of California, Irvine

Introduction to the Internet of Things and Embedded Systems (Coursera)

The explosive growth of the “Internet of Things” is changing our world and the rapid drop in price for typical IoT components is allowing people to innovate new designs and products at home. In this first class in the specialization you will learn the importance of IoT in society, the current components of typical IoT devices and trends for the future. IoT design considerations, constraints and interfacing between the physical world and your device will also be covered. You will also learn how to make design trade-offs between hardware and software. We'll also cover key components of networking to ensure that students understand how to connect their device to the Internet.

Jun 22nd 2026
4 Weeks
Introduction to CSS3 (Coursera) Coursera
University of Michigan

Introduction to CSS3 (Coursera)

The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.

Jun 22nd 2026
4 Weeks
计算机辅助翻译原理与实践 Principles and Practice of Computer-Aided Translation (Coursera) Coursera
Peking University

计算机辅助翻译原理与实践 Principles and Practice of Computer-Aided Translation (Coursera)

讲授计算机辅助翻译技术的基本概念,及多种辅助翻译工具的原理和使用方法,锻炼学生在技术环境下从事翻译工作等其他各类语言服务工作的能力,并帮助学生理解信息化时代的语言服务工作。 This course introduces the basic concepts of computer-aided translation technology and helps students learn to use computer-aided translation tools.

Jun 22nd 2026
13-24 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.

Jun 22nd 2026
4 Weeks
Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Jun 22nd 2026
5-12 Weeks
In-Memory Data Management (内存数据库管理) (openHPI) OpenHPI
Hasso-Plattner-Institut

In-Memory Data Management (内存数据库管理) (openHPI)

The online course focuses on the management of enterprise data in column-oriented in-memory databases. Latest hardware and software trends led to the development of a new revolutionary technology that enables flexible and lightning-fast analysis of massive amounts of enterprise data.

Self Paced
Self-Paced