The amask tool exposes process masks (affinity) of an application within a parallel environment, so that users can determine the cores/hardware-threads where each process is allowed to run. Amask is designed for use with pure MPI, pure OpenMP, and hybrid (MPI+OpenMP) applications.
The amask executable can be run immediately before an application to obtain the kernel masks each of the processes of the application would have (using all the environment affinity settings). The listing consists of an "easy to read" mask within a single row, for each process. There are also no-argument API calls for instrumenting codes for directly reporting the masks (affinity) within an application.
Amask reveals the actual affinity for a parallel application. By evaluating the process bindings, users can determine if the affinity setting are appropriate for executing their applications with the specified number of cores/thread on each node. This capability is very important for hybrid codes using MPI tasks and OpenMP threads.
HPC Performance & Architecture Group, Research Associate, High Performance Computing
Kent Milfeld, accepted for proceeding, amask: A Tool for Evaluating Affinity Masks in Multicore Systems, ISC17 IXPUG Workshop, ISC 2017, 17, June, 2017, Frankfurt, DE.
NSF Award 1134872: Enabling, Enhancing, and Extending Petascale Computing for Science and Engineering