Learn how to improve the performance and use parallel programming in Python. We will cover profiling, subprocess, numexpr, multiprocessing, MPI, and other performance enhancing techniques.  Some Python experience is required.

This workshop will be delivered online in two sessions:

  • June 19 from 9:00 A.M. to 12:00 P.M. Eastern Daylight Time
  • June 19 from 1:30 P.M. to 4:30 P.M. Eastern Daylight Time

These sessions will involve modern C++ Parallel programming and, in particular, will cover using C++ (Standard) Parallel Algorithms along with using std::mdspan (multi-dimensional array view) support for code that will run on both CPUs and (NVIDIA) GPUs. Attendees are expected to have already have experience with basic C++ programming.

This workshop will be delivered online in four sessions over two days:

  • June 20 from 9:00 A.M. to 12:00 P.M. Eastern Daylight Time
  • June 20 from 1:30 P.M. to 4:30 P.M. Eastern Daylight Time
  • June 21 from 9:00 A.M. to 12:00 P.M. Eastern Daylight Time
  • June 21 from 1:30 P.M. to 4:30 P.M. Eastern Daylight Time

Since the introduction of the milestone of Fortran 90 standard, Fortran has become very different from its ancestor with many new modern language features. Inherited from old FORTRAN standards and enhanced by the newer ones, Fortran is still the language of choice for scientific computing for its intrinsic support for real and complex floating point operations. Its array handling, enhanced by index slicing, makes array processing similar or identical to its counterparts, such as MATLAB, hence superior to any other programming languages. The unified interface of intrinsic functions for all data types makes translating mathematical expressions to computer programmes a lot cleaner and easier. Further, since the standard 2008, the introduction of co-arrays has made writing parallel code that can run on multiple core computers and clusters trivial, one needs not to know the traditional message passing interface (MPI) library, nor threading. They are built into the syntax of the language itself.

This module is a companion to the Modern C++ module, where you will find the features missing from Fortran that are more essential to general purpose computing than number crunching. We will show some of the practice of interlanguage programming, through which the shortcomings of Fortran could be complemented by interfacing with C/C++.

This workshop will be delivered online in four sessions over two days:

  • June 22 from 9:00 A.M. to 12:00 P.M. Eastern Daylight Time
  • June 22 from 1:30 P.M. to 4:30 P.M. Eastern Daylight Time
  • June 23 from 9:00 A.M. to 12:00 P.M. Eastern Daylight Time
  • June 23 from 1:30 P.M. to 4:30 P.M. Eastern Daylight Time