Top ten ways to make formal methods for HPC practical

Almost all fundamental advances in science and engineering crucially depend on the availability of extremely capable high performance computing (HPC) systems. Future HPC systems will increasingly be based on heterogeneous multi-core CPUs, and their programming will involve multiple concurrency models, with the message passing interface (MPI) serving as the dominant model for many years. These developments can make concurrent programming and optimization of HPC platforms and applications very error-prone. Therefore, significant advances must occur in verification methods for HPC. We present ten important formal methods research thrusts that can accelerate these advances.

[1]  Rajeev Thakur,et al.  Formal methods applied to high-performance computing software design: a case study of MPI one-sided communication-based locking , 2010 .

[2]  Guodong Li,et al.  Scalable SMT-based verification of GPU kernel functions , 2010, FSE '10.

[3]  Ganesh Gopalakrishnan,et al.  Precise Dynamic Analysis for Slack Elasticity: Adding Buffering without Adding Bugs , 2010, EuroMPI.

[4]  Ganesh Gopalakrishnan,et al.  Scheduling considerations for building dynamic verification tools for MPI , 2008, PADTAD '08.

[5]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[6]  R. Kirby,et al.  Runtime Model Checking of Multithreaded C / C + + Programs , 2022 .

[7]  Rajeev Thakur,et al.  Formal verification of practical MPI programs , 2009, PPoPP '09.

[8]  Madan Musuvathi,et al.  Iterative context bounding for systematic testing of multithreaded programs , 2007, PLDI '07.

[9]  George S. Avrunin,et al.  Combining symbolic execution with model checking to verify parallel numerical programs , 2008, TSEM.

[10]  Martin Schulz,et al.  A Scalable and Distributed Dynamic Formal Verifier for MPI Programs , 2010, 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis.

[11]  Ganesh Gopalakrishnan,et al.  An Approach to Formalization and Analysis of Message Passing Libraries , 2007, FMICS.

[12]  Stephen F. Siegel Model Checking Nonblocking MPI Programs , 2007, VMCAI.

[13]  Ganesh Gopalakrishnan,et al.  A Formal Specification of MPI 2 . 0 , 2022 .

[14]  Ganesh Gopalakrishnan,et al.  Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings , 2008, CAV.

[15]  Ganesh Gopalakrishnan,et al.  GEM: Graphical Explorer of MPI Programs , 2010, 2010 39th International Conference on Parallel Processing Workshops.

[16]  Stavros Tripakis,et al.  Checking Non-Interference in SPMD Programs , 2010 .

[17]  References , 1971 .

[18]  Ganesh Gopalakrishnan,et al.  MCC: A runtime verification tool for MCAPI user applications , 2009, 2009 Formal Methods in Computer-Aided Design.