Parallel Programming Concepts

“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.

自学
语言: English
Cloud and Operating Systems, Expert, Fundamentals, Programming

课程信息

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.

You'll find additional video lecturing material on www.tele-task.de.

课程内容

  • Week 1:

    Terminology and fundamental concepts
  • Week 2:

    Shared Memory Parallelism - Basics
  • Week 3:

    Shared memory parallelism – Programming
  • Week 4:

    Accelerators
  • Week 5:

    Distributed memory parallelism
  • Week 6:

    Patterns, best practices and examples
  • Exam:

    Exam

订阅本课程

该课程是免费的。 只需在openHPI上注册一个帐户并参加课程!
现在注册吧

Learners

Current
Today
11,078
Course End
3月 28 2014
6,465
Course Start
2月 02 2014
2,984

证书要求

  • 课程证书 授予者需要至少取得课程总分的百分之 50%
  • 参与证明 授予者需要至少学习了所有课程资料的百分之 50%

欲知详情,请访问证书指南.

该课程提供者

Dr. Peter Tröger

Dr. Peter Tröger is a senior researcher at the Hasso Plattner Institute for IT Systems Engineering at the University of Potsdam, Germany. He received a doctoral degree from University of Potsdam in 2008 for his work about stateful service-oriented infrastructures. Peter worked at the Blekinge Institute of Technology (Ronneby, Sweden), Humboldt University (Berlin, Germany) and the Brandenburg University of Technology (Cottbus, Germany), as researcher and lecturer. He is a member of GI and IEEE.

Peter’s current research interest is in dependability and programmability aspects of modern many-core environments. He is currently focusing on novel dependability modeling concepts and proactive failure prediction schemes. Peter acts as permanent program committee member for the DEPEND, ICSOC and SEKE conference series. He has research collaborations with the SAP Innovation Center, Univa, FZ Jülich, Audi, IBM Labs Böblingen, and Cloudera. Peter contributed to more than 40 publications and co-authored 3 books in the area of dependable parallel and distributed systems.

Peter currently leads the Distributed Resource Management Application API (DRMAA) working group at the Open Grid Forum. His work in this field resulted in a globally accepted standard for job management in large-scale parallel systems.