Skip to main content

An HPC Practitioner’s Workbench for Formal Refinement Checking

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2022)

Abstract

HPC practitioners make use of techniques, such as parallelism and sparse data structures, that are difficult to reason about and debug. Here we explore the role of data refinement, a correct-by-construction approach, in verifying HPC applications via bounded model checking. We show how single program, multiple data (SPMD) parallelism can be modeled in Alloy, a declarative specification language, and describe common issues that arise when performing scope-complete refinement checks in this context.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    It is well known that running unit tests is a poor way of unearthing conceptual flaws.

References

  1. Alloy models from the paper. https://go.ncsu.edu/alloy/

  2. Baugh, J., Altuntas, A.: Formal methods and finite element analysis of hurricane storm surge: a case study in software verification. Sci. Comput. Program. 158, 100–121 (2018)

    Article  Google Scholar 

  3. Beckingsale, D.A., et al.: Raja: portable performance for large-scale scientific applications. In: 2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pp. 71–81 (2019)

    Google Scholar 

  4. Carter Edwards, H., Trott, C.R., Sunderland, D.: Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J. Parallel Distrib. Comput. 74(12), 3202–3216 (2014)

    Article  Google Scholar 

  5. Dyer, T., Altuntas, A., Baugh, J.: Bounded verification of sparse matrix computations. In: Proceedings of the Third International Workshop on Software Correctness for HPC Applications, Correctness 2019, pp. 36–43. IEEE/ACM (2019)

    Google Scholar 

  6. Emerson, E.A., Trefler, R.J., Wahl, T.: Reducing model checking of the few to the one. In: Liu, Z., He, J. (eds.) Formal Methods Softw. Eng., pp. 94–113. Springer, Berlin, Heidelberg (2006)

    Chapter  Google Scholar 

  7. Gopalakrishnan, G., et al.: Report of the HPC Correctness Summit, 25–26 Jan 2017, Washington, DC. CoRR abs/1705.07478 (2017)

    Google Scholar 

  8. Hoare, C.A.R.: Proof of correctness of data representations. Acta Informatica 1(4), 271–281 (1972)

    Article  MATH  Google Scholar 

  9. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. The MIT Press (2012)

    Google Scholar 

  10. Lustig, D., Wright, A., Papakonstantinou, A., Giroux, O.: Automated synthesis of comprehensive memory model litmus test suites. In: Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 661–675. ASPLOS 2017, ACM, New York, NY, USA (2017)

    Google Scholar 

  11. Martin, J.M.R.: Testing and verifying parallel programs using data refinement. In: Communicating Process Architectures 2017 & 2018, pp. 491–500. IOS Press (2019)

    Google Scholar 

  12. Milicevic, A., Jackson, D.: Preventing arithmetic overflows in Alloy. Sci. Comput. Program. 94, 203–216 (2014)

    Article  Google Scholar 

  13. de Roever, W.P., Engelhardt, K., Buth, K.H.: Data refinement: model-oriented proof methods and their comparison. Cambridge University Press (1998)

    Google Scholar 

Download references

Acknowledgments

This work was funded by NSF under the Formal Methods in the Field (FMitF) program, awards #2124205 (NCSU) and #2124100 (Utah).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to John Baugh .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Benavides, J., Baugh, J., Gopalakrishnan, G. (2023). An HPC Practitioner’s Workbench for Formal Refinement Checking. In: Mendis, C., Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2022. Lecture Notes in Computer Science, vol 13829. Springer, Cham. https://doi.org/10.1007/978-3-031-31445-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-31445-2_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-31444-5

  • Online ISBN: 978-3-031-31445-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics