skip to main content
10.1145/2370816.2370847acmconferencesArticle/Chapter ViewAbstractPublication PagespactConference Proceedingsconference-collections
research-article

Chrysalis analysis: incorporating synchronization arcs in dataflow-analysis-based parallel monitoring

Published: 19 September 2012 Publication History

Abstract

Software lifeguards, or tools that monitor applications at runtime, are an effective way of identifying program errors and security exploits. Parallel programs are susceptible to a wider range of possible errors than sequential programs, making them even more in need of online monitoring. Unfortunately, monitoring parallel applications is difficult due to inter-thread data dependences. In prior work, we introduced a new software framework for online parallel program monitoring inspired by dataflow analysis, called Butterfly Analysis. Butterfly Analysis uses bounded windows of uncertainty to model the finite upper bound on delay between when an instruction is issued and when all its effects are visible throughout the system. While Butterfly Analysis offers many advantages, it ignored one key source of ordering information which affected its false positive rate: explicit software synchronization, and the corresponding high-level happens-before arcs.
In this work we introduce Chrysalis Analysis, which extends the Butterfly Analysis framework to incorporate explicit happens-before arcs resulting from high-level synchronization within a monitored program. We show how to adapt two standard dataflow analysis techniques and two memory and security lifeguards to Chrysalis Analysis, using novel techniques for dealing with the many complexities introduced by happens-before arcs. Our security tool implementation shows that Chrysalis Analysis matches the key advantages of Butterfly Analysis---parallel monitoring, no detailed inter-thread data dependence tracking, no strong memory consistency requirements, and no missed errors---while significantly reducing the number of false positives.

References

[1]
R. Baldoni and M. Klusch. Fundamentals of Distributed Computing: A Practical Tour of Vector Clock Systems. IEEE Distributed Systems Online, 3, February 2002.
[2]
M. D. Bond, K. E. Coons, and K. S. McKinley. PACER: Proportional Detection of Data Races. In PLDI, 2010.
[3]
D. Bruening. Efficient, Transparent, and Comprehensive Runtime Code Manipulation. PhD thesis, MIT, 2004.
[4]
S. Chen, M. Kozuch, T. Strigkos, B. Falsafi, P. B. Gibbons, T. C. Mowry, V. Ramachandran, O. Ruwase, M. Ryan, and E. Vlachos. Flexible Hardware Acceleration for Instruction-grain Program Monitoring. In ISCA, 2008.
[5]
M. Christiaens and K. De Bosschere. Accordion Clocks: Logical Clocks for Data Race Detection. In Euro-Par 2001 Parallel Processing, 2001.
[6]
J. Chung, M. Dalton, H. Kannan, and C. Kozyrakis. Thread-Safe Dynamic Binary Translation using Transactional Memory. In HPCA, 2008.
[7]
C. Flanagan and S. N. Freund. Adversarial Memory for Detecting Destructive Races. In PLDI, 2010.
[8]
C. Flanagan and S. N. Freund. FastTrack: Efficient and Precise Dynamic Race Detection. In PLDI, 2009.
[9]
M. L. Goodstein, E. Vlachos, S. Chen, P. B. Gibbons, M. A. Kozuch, and T. C. Mowry. Butterfly Analysis: Adapting Dataflow Analysis To Dynamic Parallel Monitoring. In ASPLOS, 2010.
[10]
H. Kannan. Ordering Decoupled Metadata Accesses in Multiprocessors. In MICRO, 2009.
[11]
C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In PLDI, 2005.
[12]
A. Muzahid, D. Suárez, S. Qi, and J. Torrellas. SigRace: Signature-Based Data Race Detection. In ISCA, 2009.
[13]
N. Nethercote. Dynamic Binary Analysis and Instrumentation. PhD thesis, U. Cambridge, 2004. http://valgrind.org.
[14]
N. Nethercote and J. Seward. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. In PLDI, 2007.
[15]
N. Nethercote and J. Seward. Valgrind: A Program Supervision Framework. Electronic Notes in Theoretical Computer Science, 89 (2), 2003.
[16]
J. Newsome and D. Song. Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software. In NDSS, 2005.
[17]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A Dynamic Race Detector for Multi-threaded Programs. ACM Transactions on Computer Systems, 15(4), 1997.
[18]
K. Serebryany and T. Iskhodzhanov. ThreadSanitzer - Data Race Detection in Practice. In WBIA, 2009.
[19]
M. Singhal and A. Kshemkalyani. An efficient implementation of vector clocks. Inf. Process. Lett., 1992.
[20]
SUN Microsystems, Inc. The SPARC Architecture Manual, 1991. version 8.
[21]
R. E. Tarjan. Fast Algorithms for Solving Path Problems. Journal of the ACM, 28(3), 1981.
[22]
G. Venkataramani, I. Doudalis, Y. Solihin, and M. Prvulovic. FlexiTaint: A Programmable Accelerator for Dynamic Taint Propagation. In HPCA, 2008.
[23]
Virtutech Simics. http://www.virtutech.com/.
[24]
E. Vlachos, M. L. Goodstein, M. A. Kozuch, S. Chen, B. Falsafi, P. B. Gibbons, and T. C. Mowry. ParaLog: Enabling and Accelerating Online Parallel Monitoring of Multithreaded Applications. In ASPLOS, 2010.
[25]
S. C. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta. The SPLASH-2 Programs: Characterization and Methodological Considerations. In ISCA, 1995.
[26]
Y. Yu, T. Rodeheffer, and W. Chen. RaceTrack: Efficient Detection of Data Race Conditions via Adapative Tracking. In SOSP, 2005.

Cited By

View all
  • (2022)A Sketching Approach for Obtaining Real-Time Statistics Over Data Streams in CloudIEEE Transactions on Cloud Computing10.1109/TCC.2020.298702310:2(1462-1475)Online publication date: 1-Apr-2022
  • (2019)Accelerating Real-Time Tracking Applications over Big Data Stream with Constrained SpaceDatabase Systems for Advanced Applications10.1007/978-3-030-18576-3_1(3-18)Online publication date: 24-Apr-2019
  • (2018)Scalable concurrency debugging with distributed graph processingProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168817(188-199)Online publication date: 24-Feb-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PACT '12: Proceedings of the 21st international conference on Parallel architectures and compilation techniques
September 2012
512 pages
ISBN:9781450311823
DOI:10.1145/2370816
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data flow analysis
  2. dynamic program monitoring
  3. high-level synchronization
  4. parallel programming
  5. vector clocks

Qualifiers

  • Research-article

Conference

PACT '12
Sponsor:
  • IFIP WG 10.3
  • SIGARCH
  • IEEE CS TCPP
  • IEEE CS TCAA

Acceptance Rates

Overall Acceptance Rate 121 of 471 submissions, 26%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A Sketching Approach for Obtaining Real-Time Statistics Over Data Streams in CloudIEEE Transactions on Cloud Computing10.1109/TCC.2020.298702310:2(1462-1475)Online publication date: 1-Apr-2022
  • (2019)Accelerating Real-Time Tracking Applications over Big Data Stream with Constrained SpaceDatabase Systems for Advanced Applications10.1007/978-3-030-18576-3_1(3-18)Online publication date: 24-Apr-2019
  • (2018)Scalable concurrency debugging with distributed graph processingProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168817(188-199)Online publication date: 24-Feb-2018
  • (2017)Supporting Real-Time Analytic Queries in Big and Fast Data EnvironmentsDatabase Systems for Advanced Applications10.1007/978-3-319-55699-4_29(477-493)Online publication date: 22-Mar-2017
  • (2015)Tracking and Reducing Uncertainty in Dataflow Analysis-Based Dynamic Parallel MonitoringProceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT)10.1109/PACT.2015.20(266-279)Online publication date: 18-Oct-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media