Processor-Oblivious Record and Replay
Autor: | I-Ting Angelina Lee, Milind Kulkarni, Kunal Agrawal, Robert Utterback |
---|---|
Rok vydání: | 2019 |
Předmět: |
Record locking
Computer science media_common.quotation_subject sync Task parallelism 0102 computer and information sciences 02 engineering and technology Thread (computing) Software_PROGRAMMINGTECHNIQUES Cilk computer.software_genre 01 natural sciences Runtime system 0202 electrical engineering electronic engineering information engineering Dynamic program analysis media_common computer.programming_language Programming language 020207 software engineering Computer Graphics and Computer-Aided Design Lock (computer science) Computer Science Applications Computational Theory and Mathematics Debugging 010201 computation theory & mathematics Hardware and Architecture Work stealing Modeling and Simulation computer Software |
Zdroj: | PPOPP |
ISSN: | 2329-4957 2329-4949 |
DOI: | 10.1145/3365659 |
Popis: | Record-and-replay systems are useful tools for debugging non-deterministic parallel programs by first recording an execution and then replaying that execution to produce the same access pattern. Existing record-and-replay systems generally target thread-based execution models, and record the behaviors and interleavings of individual threads. Dynamic multithreaded languages and libraries, such as the Cilk family, OpenMP, TBB, and the like, do not have a notion of threads. Instead, these languages provide a processor-oblivious model of programming, where programs expose task parallelism using high-level constructs such as spawn/sync without regard to the number of threads/cores available to run the program. Thread-based record-and-replay would violate the processor-oblivious nature of these programs, as they incorporate the number of threads into the recorded information, constraining the replayed execution to the same number of threads. In this article, we present a processor-oblivious record-and-replay scheme for dynamic multithreaded languages where record and replay can use different number of processors and both are scheduled using work stealing. We provide theoretical guarantees for our record and replay scheme—namely that record is optimal for programs with one lock and replay is near-optimal for all cases. In addition, we implemented this scheme in the Cilk Plus runtime system and our evaluation indicates that processor-obliviousness does not cause substantial overheads. |
Databáze: | OpenAIRE |
Externí odkaz: |