• Aucun résultat trouvé

System-level State Equality Detection for the Dynamic Verification of Distributed Applications

N/A
N/A
Protected

Academic year: 2021

Partager "System-level State Equality Detection for the Dynamic Verification of Distributed Applications"

Copied!
2
0
0

Texte intégral

(1)

HAL Id: hal-00997941

https://hal.inria.fr/hal-00997941

Submitted on 29 May 2014

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of

sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

System-level State Equality Detection for the Dynamic

Verification of Distributed Applications

Marion Guthmuller, Martin Quinson

To cite this version:

Marion Guthmuller, Martin Quinson. System-level State Equality Detection for the Dynamic

Verifi-cation of Distributed AppliVerifi-cations. EuroSys - 9th European Conference on Computer Systems, Apr

2014, Amsterdam, Netherlands. �hal-00997941�

(2)

System-level State Equality Detection for the Dynamic

Verification of Distributed Applications

Marion Guthmuller

1

and Martin Quinson

2

1PhD Student, Universit´e de Lorraine, France (will present the poster)

2Assistant Professor, Universit´e de Lorraine, France

The poster is about the joint correction and perfor-mance study of distributed applications, without any manual rewrite between models, algorithms and real implementations. Our goal is to dynamically verify un-modified legacy distributed applications written with MPI, or a similar API that allows concurrent sequential processes (CSP) to interact through message passing.

Our work aims to improve the dynamic verification tool SimGridMC, which exhaustively verifies distribu-ted applications by executing the real program. For this, the applications can be specified using either one of the interfaces provided by the versatile SimGrid fra-mework, or the classical MPI standard. Prior to this work, SimGridMC was stateless, only checkpointing the initial system’s state. When needing to backtrack a previous state to explore another path, this initial state was first restored and then all transitions leading to the desired state were replayed. In the context of HPC ap-plications however, this approach reveals problematic since application’s computations are much more expen-sive than with Peer-to-Peer protocols for which Sim-GridMC was initially intended. It then becomes inter-esting to save more system states so that they can be restored without re-executing previous computation. Moreover, stateless verification only enables the verifi-cation of safety properties while the most interesting properties include vivacity. The verification of liveness properties is based on the detection of cycles during the execution of the application and thus on the detection of system’s state equality. Finally, this work can also be used to exhaustively verify cyclic applications which may be infinite-time, such as cyclic protocols that are governed by periodic events (the P2P protocol Chord for example).

This poster organized as follows : we first present our motivation – the study and verification of distributed applications. As explained earlier, a preexisting ver-sion of a dynamic verification tool, SimGridMC, was developed to verify real implementations of distribu-ted applications. This tool was however limidistribu-ted to the verification of one kind of property and its stateless ap-proach wasn’t suitable for the HPC applications or for some cyclic applications. The detection of system state

equalities is one of major challenges for the improve-ment of this tool. We detail in a second part the OS-level challenges encountered when detecting the sys-tem state equality of MPI applications and propose in a third part solutions to mitigate these difficulties.

Since the byte per byte memory comparison leads to the detection of syntactic differences that are not signi-ficant, a memory introspection and a semantic compa-rison is necessary. We identified four major causes of these differences : (1) the memory overprovisioning im-plemented by many memory allocation libraries, such as the size of memory chunks is a power of two. For example, a memory area of 64 bytes will be used to serve a request of 48 bytes. Unused bytes may thus result in irrelevant differences, as they contain uns-pecified values ; (2) some padding bytes added by the compiler between the variables to enforce memory ali-gnment constraints. Like with the memory overprovi-sioning, these bytes must not be considered in the com-parison ; (3) some irrelevant differences such as PID, or file descriptors ; (4) the order in memory of malloced blocks may leads to two heaps at two different exe-cution times syntactically different while being equal from a semantic point of view. This situation often oc-curs in our context because the block ordering stems from the order of malloc requests, which change when the process execution order changes, as in the dynamic verification.

For each of these OS-level issues, we propose several solutions leveraging debugging information and tools. To the best of our knowledge, this is the first heuristic that can be used on programming languages and sys-tems without automatic garbage collection to recons-truct the needed semantic information.

We show in another part the effectiveness of our state equality mechanism through several experiments such as the dynamic verification of a liveness property on a custom MPI application and the verification of some MPICH3 integrated tests. Finally, we briefly present the future work associated to this work.

Références

Documents relatifs

System-Level State Equality Detection for the Formal Dynamic Verification of Legacy Distributed Applications.. Marion Guthmuller, Gabriel Corona,

"For instance, scientists have discovered that a genetic mutation that increases the risk for Alzheimer disease occurs at significantly different frequencies among

Similar to the way Zeeman shifts in a MOT cause preferential scattering of certain helicities of light, this motion induced atomic orientation makes it more likely for atoms to

In this paper, we present a formal renement-based approach that aims, rst, to model message-oriented SOA design patterns with the SoaML standard language, and second to

Collection of human genomic DNA from buccal cells for genetics studies: comparison between cytobrush, mouth- wash, and treated card.... © 2005 Hindawi

décroître pour passer par un minimum puis croître jusqu’à s’annuler en C. A partir de là le cycle recommence. Nous remarquons que les deux courbes de la  p et de la vitesse

We track information ows between objects of the operating system (such as les, sockets, shared memory, processes, etc.) and network packets.. owing

We propose a new heap comparison algorithm based on a re-implementation of malloc, which reduces the amount of false negatives in the system state equality detection, thanks