PARCOACH Extension for Hybrid Applications with Interprocedural Analysis

  • Saillard E
  • Brunie H
  • Carribault P
  • et al.
N/ACitations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Supercomputers are rapidly evolving with now millions of processing units, posing the questions of their programmability. Despite the emergence of more widespread and functional programming models, developing correct and effective parallel applications still remains a complex task. Although debugging solutions have emerged to address this issue, they often come with restrictions. Furthermore, programming model evolutions stress the requirement for a validation tool able to handle hybrid applications. Indeed, as current scientific applications mainly rely on MPI (Message-Passing Interface), new hardwares designed with a larger node-level parallelism advocate for an MPI+X solution with X a shared-memory model like OpenMP. But integrating two different approaches inside the same application can be error-prone leading to complex bugs. In an MPI+X program, not only the correctness of MPI should be ensured but also its interactions with the multi-threaded model. For example, identical MPI collective operations cannot be performed by multiple non-synchronized threads. In this paper, we present an extension of the PARallel COntrol flow Anomaly CHecker (PARCOACH) to enable verification of hybrid HPC applications. Relying on a GCC plugin that combines static and dynamic analysis, the first pass statically verifies the thread level required by an MPI+OpenMP application and outlines execution paths leading to potential deadlocks. Based on this analysis, the code is selectively instrumented, displaying an error and interrupting all processes if the actual scheduling leads to a deadlock situation. 11.1 Introduction The evolution of supercomputers to Exascale systems raises the issue of choosing the right parallel programming models for applications. Currently, most HPC appli-cations are based on MPI. But the hardware evolution of increasing core counts E. Saillard (B) · H. 135 136 E. Saillard et al. per node leads to a mix of MPI with shared-memory approaches like OpenMP. However merging two parallel programming models within the same application requires full interoperability between these models and makes the debugging task more challenging. Therefore, there is a need for tools able to identify functional bugs as early as possible during the development cycle. To tackle this issue, we designed the PARallel COntrol flow Anomaly CHecker (PARCOACH) that combines static and dynamic analyses to enable an early detection of bugs in parallel applications. With the help of a compiler pass, PARCOACH can extract potential parallel dead-locks related to control-flow divergence and issue warnings during the compilation. Not only the parallel constructs involved in the deadlock are identified and printed during the compilation, but the statements responsible for the control-flow diver-gence are also outputted. In this paper, we propose an extension of PARCOACH to hybrid MPI+OpenMP applications and an interprocedural analysis to improve the bug detection through a whole program. This work is based on [10] and extends [11] with more details and an interprocedural analysis. To the best of our knowledge, only Marmot [3] is able to detect errors in MPI+OpenMP programs. But as a dynamic tool, Marmot detects errors during the execution and is limited to the dynamic parallel schedule and only detects errors occurring for a given inputset whereas our approach allows for static bug detection with runtime support and detects bugs for all possible values of inputs. In the following we assume SPMD MPI programs that call all MPI collective operations with compatible arguments (only the MPI_COMM_WORLD communicator is supported). Therefore, each MPI task can have a different control flow within functions, but it goes through the same functions for communications. Issues related to MPI arguments can be tested through other tools.

Cite

CITATION STYLE

APA

Saillard, E., Brunie, H., Carribault, P., & Barthou, D. (2016). PARCOACH Extension for Hybrid Applications with Interprocedural Analysis. In Tools for High Performance Computing 2015 (pp. 135–146). Springer International Publishing. https://doi.org/10.1007/978-3-319-39589-0_11

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free