Event Type
Tutorial

Parallel Programming Languages, Libraries, Models
and Notations
TimeMonday, November 13th1:30pm -
5pm
Location201
DescriptionInteractive computing has taken on new importance in
many branches of science, particularly in exploratory
phases, where researchers are still playing with ideas
and code. Jupyter notebooks have emerged as the dominant
tool for interactive computing. With the advent of
Cling, C++ can be used interactively in the Jupyter
framework.
Additionally, the C++14/17 standard brings significant new parallel programming capability to the C++ language with the introduction of a unified interface for asynchronous programming using futures. This style of programming enables fine-grained constraint-based parallelism, and avoids many load-balancing issues. HPX built on C++14/17 extends it to distributed operations and increases its composability. By conforming to the standard, developers comfortable with the modern language can easily write scalable, portable parallel applications.
In this tutorial, we give a simple, Jupyter-based method to learn modern HPC-C++14/17 parallel programming, and then we show how to adapt C++ programs to modern massively parallel environments using HPX. Using hands-on examples and tool demonstrations, we show how HPX allows users to apply asynchronous concepts and active messaging techniques to gain performance and productivity in a variety of applications. The interactive environment provided by Jupyter has been effective for university students to quickly learn programming concepts.
Additionally, the C++14/17 standard brings significant new parallel programming capability to the C++ language with the introduction of a unified interface for asynchronous programming using futures. This style of programming enables fine-grained constraint-based parallelism, and avoids many load-balancing issues. HPX built on C++14/17 extends it to distributed operations and increases its composability. By conforming to the standard, developers comfortable with the modern language can easily write scalable, portable parallel applications.
In this tutorial, we give a simple, Jupyter-based method to learn modern HPC-C++14/17 parallel programming, and then we show how to adapt C++ programs to modern massively parallel environments using HPX. Using hands-on examples and tool demonstrations, we show how HPX allows users to apply asynchronous concepts and active messaging techniques to gain performance and productivity in a variety of applications. The interactive environment provided by Jupyter has been effective for university students to quickly learn programming concepts.
Links