skip to main content
10.1145/1926385.1926416acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Modular reasoning for deterministic parallelism

Published: 26 January 2011 Publication History

Abstract

Weaving a concurrency control protocol into a program is difficult and error-prone. One way to alleviate this burden is deterministic parallelism. In this well-studied approach to parallelisation, a sequential program is annotated with sections that can execute concurrently, with automatically injected control constructs used to ensure observable behaviour consistent with the original program.
This paper examines the formal specification and verification of these constructs. Our high-level specification defines the conditions necessary for correct execution; these conditions reflect program dependencies necessary to ensure deterministic behaviour. We connect the high-level specification used by clients of the library with the low-level library implementation, to prove that a client's requirements for determinism are enforced. Significantly, we can reason about program and library correctness without breaking abstraction boundaries.
To achieve this, we use concurrent abstract predicates, based on separation logic, to encapsulate racy behaviour in the library's implementation. To allow generic specifications of libraries that can be instantiated by client programs, we extend the logic with higher-order parameters and quantification. We show that our high-level specification abstracts the details of deterministic parallelism by verifying two different low-level implementations of the library.

Supplementary Material

MP4 File (25-mpeg-4.mp4)

References

[1]
C. J. Bell, A. Appel, and D. Walker. Concurrent separation logic for pipelined parallelization. In SAS, 2009.
[2]
E. D. Berger, T. Yang, T. Liu, and G. Novark.Grace: Safe multithreaded programming for C/C++. In OOPSLA, 2010.
[3]
B. Biering, L. Birkedal, and N. Torp-Smith. BI-hyperdoctrines, higher-order separation logic, and abstraction. TOPLAS, 29(5), 2007.
[4]
R. L. Bocchino, Jr., V. S. Adve, D. Dig, S. V. Adve, S. Heumann, R. Komuravelli, J. Overbey, P. Simmons, H. Sung, and M. Vakilian. A type and effect system for deterministic parallel Java. In OOPSLA '09, pages 97--116. ACM, 2009.
[5]
J. Boyland. Checking interference with fractional permissions. In SAS, 2003.
[6]
T. Dinsdale-Young, M. Dodds, P. Gardner, M. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010.
[7]
T. Dinsdale-Young, P. Gardner, and M. Wheelhouse. Abstraction and refinement for local reasoning. In VSTTE, 2010.
[8]
M. Dodds, X. Feng, M. Parkinson, and V. Vafeiadis. Deny-guarantee reasoning. In ESOP, 2009.
[9]
M. Dodds, S. Jagannathan, and M. J. Parkinson. Modular reasoning for deterministic parallelism. Computer laboratory technical report, University of Cambridge, 2010.
[10]
X. Feng, R. Ferreira, and Z. Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP, 2007.
[11]
A. Gotsman, J. Berdine, B. Cook, N. Rinetzky, and M. Sagiv. Local reasoning for storable locks and threads. In APLAS, 2007.
[12]
C. Haack, M. Huisman, and C. Hurlin. Reasoning about Java's Reentrant Locks. In APLAS, pages 171--187, 2008.
[13]
C. A. R. Hoare and P. W. O'Hearn. Separation logic semantics for communicating processes. ENTCS, 212:3--25, 2008.
[14]
A. Hobor, A. W. Appel, and F. Zappa Nardelli. Oracle semantics for concurrent separation logic. In ESOP, 2008.
[15]
B. Jacobs and F. Piessens. Modular full functional specification and verification of lock-free data structures. Technical Report CW 551, Katholieke Universiteit Leuven, Dept. of Computer Science, 2009.
[16]
C. B. Jones. Tentative steps toward a development method for interfering programs. TOPLAS, 5(4):596--619, 1983.
[17]
N. R. Krishnaswami, L. Birkedal, and J. Aldrich. Verifying event-driven programs using ramified frame properties. In TLDI, 2010.
[18]
K. R. M. Leino, P. Müller, and J. Smans. Deadlock-free channels and locks. In ESOP, 2010.
[19]
A. Navabi, X. Zhang, and S. Jagannathan. Quasi-static Scheduling for Safe Futures. In PPoPP, pages 23--32. ACM, 2008.
[20]
P. W. O'Hearn. Resources, concurrency and local reasoning. TCS, 2007.
[21]
M. J. Parkinson and G. M. Bierman. Separation logic and abstraction. In POPL, pages 247--258, 2005.
[22]
M. C. Rinard and M. S. Lam. Semantic Foundations of Jade. In POPL, pages 105--118. ACM, 1992.
[23]
V. Vafeiadis. Modular Fine-Grained Concurrency Verification. PhD thesis, University of Cambridge, July 2007.
[24]
J.Villard, É. Lozes,and C. Calcagno. Tracking heaps that hop with heap-hop. In TACAS, pages 275--279, 2010.
[25]
A. Welc, S. Jagannathan, and A. Hosking. Safe Futures for Java. In OOPSLA, pages 439--435, 2005.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2011
652 pages
ISBN:9781450304900
DOI:10.1145/1926385
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 1
    POPL '11
    January 2011
    624 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1925844
    Issue’s Table of Contents
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

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. concurrent abstract predicates
  3. futures
  4. separation logic

Qualifiers

  • Research-article

Conference

POPL '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2022)Sound Automation of Magic WandsComputer Aided Verification10.1007/978-3-031-13188-2_7(130-151)Online publication date: 6-Aug-2022
  • (2017)A Verification Technique for Deterministic Parallel ProgramsNASA Formal Methods10.1007/978-3-319-57288-8_17(247-264)Online publication date: 9-Apr-2017
  • (2016)Hoare-style specifications as correctness conditions for non-linearizable concurrent objectsACM SIGPLAN Notices10.1145/3022671.298399951:10(92-110)Online publication date: 19-Oct-2016
  • (2016)Hoare-style specifications as correctness conditions for non-linearizable concurrent objectsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2983999(92-110)Online publication date: 19-Oct-2016
  • (2016)Verifying Custom Synchronization Constructs Using Higher-Order Separation LogicACM Transactions on Programming Languages and Systems10.1145/281863838:2(1-72)Online publication date: 4-Jan-2016
  • (2015)Threads as Resource for Concurrency VerificationProceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation10.1145/2678015.2682540(73-84)Online publication date: 13-Jan-2015
  • (2014)Proof search for propositional abstract separation logics via labelled sequentsACM SIGPLAN Notices10.1145/2578855.253586449:1(465-476)Online publication date: 8-Jan-2014
  • (2014)Proof search for propositional abstract separation logics via labelled sequentsProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535864(465-476)Online publication date: 11-Jan-2014
  • (2014)Impredicative Concurrent Abstract PredicatesProceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 841010.1007/978-3-642-54833-8_9(149-168)Online publication date: 5-Apr-2014
  • (2013)Alias control for deterministic parallelismAliasing in Object-Oriented Programming10.5555/2554511.2554521(156-195)Online publication date: 1-Jan-2013
  • Show More Cited By

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