Description: Adaptive MPI (AMPI) is an MPI implementation with several built-in features to improve application performance such as overlap of communication and computation, load balancing, and fault tolerance. In many cases, developers can switch to AMPI from another MPI implementation (e.g., OpenMPI, MPICH, etc.) with few to no changes in their code. This training will describe AMPI and the Charm++ runtime system that enables these features and show developers how they can switch to AMPI in their own applications.
| Presenter(s): Dr. Nathan Bowman, GDIT / PET Location: Webcast Date & Time: April 25, 2:00p - 3:30p ET |
Controlled by: DoD HPCMP Controlled by: PET Program CUI Category: OPSEC Limited Dissemination Control: FEDCON POC: Mr. Ronald Hedgepeth, pet@hpc.mil |
CUI
- Presenter: Nathaniel Bowman

Description: This seminar will introduce HPCMP users to the basics of several methods for offloading Fortran to GPUs.
Fortran is still actively used across the HPC community. There are many different tools and methods for leveraging GPU resources for Fortran-based computation. Many of them such as OpenMP can be incrementally added to existing code without major re-writing of codebases.
| Presenter(s): Dr. Michael Corley, GDIT / PET Location: Webcast Date & Time: September 4, 2:00p – 3:30p ET |
Controlled by: DoD HPCMP Controlled by: PET Program CUI Category: OPSEC Limited Dissemination Control: FEDCON POC: Mr. Ronald Hedgepeth, pet@hpc.mil |
CUI
- Presenter: Michael Corley

Description: This seminar will discuss RAJA, a popular library for developing performance portable parallel code that can be written once and run efficiently on many different architectures. This will include guidance on installing RAJA on HPCMP systems, the fundamentals for developing parallel code with RAJA, and using more advanced parallel techniques to effectively implement more complex parallel kernels. This will include examples showing how to develop code that can efficiently run on both CPU and GPU nodes on HPCMP systems.
| Presenter(s): Dr. Paul Eller, GDIT/PET Location: Webcast Date & Time: June 12, 2025, 2:00p - 3:30p ET | Controlled by: DoD HPCMP Controlled by: PET Program CUI Category: OPSEC Limited Dissemination Control: FEDCON POC: Mr. Ronald Hedgepeth, pet@hpc.mil |
CUI
- Presenter: Paul Eller
Performance Portability, Parallel Programming, GPUs, Cuda, OpenMP
Description: CMake is one of the most powerful, fastest and ubiquitous build managers in existence. It provides a framework to manage compilation for all types of software, from large, complex enterprise applications to small bespoke scientific codes. This course provides a basic introduction to using CMake. Learn the motivations behind using a build manager like CMake, how to build software that uses CMake and how to use CMake to manage builds for your own software.
| Presenter(s): Spencer Starr, GDIT/PET Location: Webcast Date & Time: September 22, 2022, 2:00p - 3:00p ET |
Controlled by: DoD HPCMP Controlled by: PET Program CUI Category: OPSEC Limited Dissemination Control: FEDCON POC: Mr. Ronald Hedgepeth, pet@hpc.mil |
CUI
Description: This technical training event will be covering the basics of parallel computing and moving into specifics on how to write code that can be run in parallel using MPI and OpenMP. Examples will be worked through, however there will not be any dedicated time for labs. The topics that will be covered include:
- Jargon used with HPC,
- MPI - basics (comm size, comm rank, barriers),
- MPI - point to point communications (send, receive),
- MPI - collective functions (reductions, scatters, gathers, etc.),
- OpenMP – basics: overall difference from MPI,
- OpenMP – Creating Threads,
- OpenMP – Parallel loops,
- OpenMP – Reductions,
- OpenMP – Function calls, and
- MPI + OpenMP – Combining both in 1 program
Presenter(s): Ross Smith, PhD, GDIT / PET
Location: Webcast
Date & Time: April 23, 2020, 9:00a - 5:00p ET
Description: This course is a comprehensive introduction to parallel programming for the serial programmer. Topics covered are HPC architectures, Message Passing Interface (MPI), POSIX threads and real-time programming, OpenMP and an overview of a few of the high level languages commonly used on HPC platforms.
Presenter: Dr. Michael Stokes, Engility Corporation
Date/Location: April 19-20, 2011, Alabama Supercomputer Center, Huntsville, AL
Distribution Statement D. Distribution limited to the Department of Defense and U.S. DoD contractors only, for administrative or operational use, 20 April 2011. Other requests for this document shall be referred to the High Performance Modernization Office, 10501 Furnace Road, Suite 101, Lorton, VA 22079.
Description: Part 1 of the Scalable Programming for HPC course enables participants to develop scalable applications for High Performance Computing (HPC) resources such as tightly-coupled supercomputers (Cray, IBM, SGI, etc.) and clusters.
Presenter: John Urbanic, Pittsburgh Supercomputing Center (PSC)
Date/Location: October 2-3, 2012, ERDC DSRC, Vicksburg, MS
Distribution Statement D. Distribution limited to the Department of Defense and U.S. DoD contractors only, for administrative or operational use, 3 October 2017. Other requests for this document shall be referred to the High Performance Modernization Office, 10501 Furnace Road, Suite 101, Lorton, VA 22079.
Description: Part 2 of the Scalable Programming for HPC course, teaches the use of OpenMP for threaded programming on multicore architectures.
Presenter: David O'Neal, Pittsburgh Supercomputing Center (PSC)
Date: October 16-17, 2012
Distribution Statement D. Distribution limited to the Department of Defense and U.S. DoD contractors only, for administrative or operational use, 17 October 2012. Other requests for this document shall be referred to the High Performance Modernization Office, 10501 Furnace Road, Suite 101, Lorton, VA 22079.
Description: What are MPI and OpenMP? MPI: Distributed memory model on Distributed network, Message based, Flexible and expressive. OpenMP: Shared memory model on Multi-core processors, Directive based easier to program and debug. Message Passing Interface (MPI) is a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementers, and users. - OpenMP is a specification for a set of compiler directives, library routines, and environment variables that can be used to specify shared memory parallelism in Fortran and C/C++ programs.will be presented.
Presenters: Dr. Ross Smith, Engility PETTT
Date/Location: June 6-7, 2018, ARL
DISTRIBUTION STATEMENT A. Approved for public release: distribution unlimited.
