Aikido: Accelerating shared data dynamic analyses

Despite a burgeoning demand for parallel programs, the tools available to developers working on shared-memory multicore processors have lagged behind. One reason for this is the lack of hardware support for inspecting the complex behavior of these parallel programs. Inter-thread communication, which...

Full description

Bibliographic Details
Main Authors: Olszewski, Marek Krystyn, Zhao, Qin, Koh, David F., Ansel, Jason Andrew, Amarasinghe, Saman P.
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Association for Computing Machinery 2012
Online Access:http://hdl.handle.net/1721.1/72082
https://orcid.org/0000-0002-7231-7643
_version_ 1826193621638971392
author Olszewski, Marek Krystyn
Zhao, Qin
Koh, David F.
Ansel, Jason Andrew
Amarasinghe, Saman P.
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Olszewski, Marek Krystyn
Zhao, Qin
Koh, David F.
Ansel, Jason Andrew
Amarasinghe, Saman P.
author_sort Olszewski, Marek Krystyn
collection MIT
description Despite a burgeoning demand for parallel programs, the tools available to developers working on shared-memory multicore processors have lagged behind. One reason for this is the lack of hardware support for inspecting the complex behavior of these parallel programs. Inter-thread communication, which must be instrumented for many types of analyses, may occur with any memory operation. To detect such thread communication in software, many existing tools require the instrumentation of all memory operations, which leads to significant performance overheads. To reduce this overhead, some existing tools resort to random sampling of memory operations, which introduces false negatives. Unfortunately, neither of these approaches provide the speed and accuracy programmers have traditionally expected from their tools. In this work, we present Aikido, a new system and framework that enables the development of efficient and transparent analyses that operate on shared data. Aikido uses a hybrid of existing hardware features and dynamic binary rewriting to detect thread communication with low overhead. Aikido runs a custom hypervisor below the operating system, which exposes per-thread hardware protection mechanisms not available in any widely used operating system. This hybrid approach allows us to benefit from the low cost of detecting memory accesses with hardware, while maintaining the word-level accuracy of a software-only approach. To evaluate our framework, we have implemented an Aikido-enabled vector clock race detector. Our results show that the Aikido enabled race-detector outperforms existing techniques that provide similar accuracy by up to 6.0x, and 76% on average, on the PARSEC benchmark suite.
first_indexed 2024-09-23T09:42:03Z
format Article
id mit-1721.1/72082
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T09:42:03Z
publishDate 2012
publisher Association for Computing Machinery
record_format dspace
spelling mit-1721.1/720822022-09-26T13:13:28Z Aikido: Accelerating shared data dynamic analyses Olszewski, Marek Krystyn Zhao, Qin Koh, David F. Ansel, Jason Andrew Amarasinghe, Saman P. Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Amarasinghe, Saman P. Amarasinghe, Saman P. Olszewski, Marek Krystyn Zhao, Qin Koh, David F Ansel, Jason Andrew Despite a burgeoning demand for parallel programs, the tools available to developers working on shared-memory multicore processors have lagged behind. One reason for this is the lack of hardware support for inspecting the complex behavior of these parallel programs. Inter-thread communication, which must be instrumented for many types of analyses, may occur with any memory operation. To detect such thread communication in software, many existing tools require the instrumentation of all memory operations, which leads to significant performance overheads. To reduce this overhead, some existing tools resort to random sampling of memory operations, which introduces false negatives. Unfortunately, neither of these approaches provide the speed and accuracy programmers have traditionally expected from their tools. In this work, we present Aikido, a new system and framework that enables the development of efficient and transparent analyses that operate on shared data. Aikido uses a hybrid of existing hardware features and dynamic binary rewriting to detect thread communication with low overhead. Aikido runs a custom hypervisor below the operating system, which exposes per-thread hardware protection mechanisms not available in any widely used operating system. This hybrid approach allows us to benefit from the low cost of detecting memory accesses with hardware, while maintaining the word-level accuracy of a software-only approach. To evaluate our framework, we have implemented an Aikido-enabled vector clock race detector. Our results show that the Aikido enabled race-detector outperforms existing techniques that provide similar accuracy by up to 6.0x, and 76% on average, on the PARSEC benchmark suite. National Science Foundation (U.S.) (NSF grant CCF-0832997) National Science Foundation (U.S.) (DOE SC0005288) United States. Defense Advanced Research Projects Agency (DARPA HR0011-10- 9-0009) 2012-08-09T20:03:13Z 2012-08-09T20:03:13Z 2012-03 Article http://purl.org/eprint/type/JournalArticle 978-1-4503-0759-8 http://hdl.handle.net/1721.1/72082 Olszewski, Marek et al. “Aikido.” in Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '12, ACM Press, 2012. 173. Web. https://orcid.org/0000-0002-7231-7643 en_US http://dx.doi.org/10.1145/2150976.2150995 Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS '12 application/pdf Association for Computing Machinery
spellingShingle Olszewski, Marek Krystyn
Zhao, Qin
Koh, David F.
Ansel, Jason Andrew
Amarasinghe, Saman P.
Aikido: Accelerating shared data dynamic analyses
title Aikido: Accelerating shared data dynamic analyses
title_full Aikido: Accelerating shared data dynamic analyses
title_fullStr Aikido: Accelerating shared data dynamic analyses
title_full_unstemmed Aikido: Accelerating shared data dynamic analyses
title_short Aikido: Accelerating shared data dynamic analyses
title_sort aikido accelerating shared data dynamic analyses
url http://hdl.handle.net/1721.1/72082
https://orcid.org/0000-0002-7231-7643
work_keys_str_mv AT olszewskimarekkrystyn aikidoacceleratingshareddatadynamicanalyses
AT zhaoqin aikidoacceleratingshareddatadynamicanalyses
AT kohdavidf aikidoacceleratingshareddatadynamicanalyses
AT anseljasonandrew aikidoacceleratingshareddatadynamicanalyses
AT amarasinghesamanp aikidoacceleratingshareddatadynamicanalyses