Skip to main content

An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection

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

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 10136))

Abstract

Despite its age, SPMD (Single Program Multiple Data) parallelism continues to be one of the most popular parallel execution models in use today, as exemplified by OpenMP for multicore systems and CUDA and OpenCL for accelerator systems. The basic idea behind the SPMD model, which makes it different from task-parallel models, is that all logical processors (worker threads) execute the same program with sequential code executed redundantly and parallel code executed cooperatively. In this paper, we extend the polyhedral model to enable analysis of explicitly parallel SPMD programs and provide a new approach for static detection of data races in SPMD programs using the extended polyhedral model. We evaluate our approach using 34 OpenMP programs from the OmpSCR and PolyBench-ACC (PolyBench-ACC derives from the PolyBench benchmark suite and provides OpenMP, OpenACC, CUDA, OpenCL and HMPP implementations.) benchmark suites.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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.

    An earlier version of this paper was presented at the IMPACT’16 workshop [6], a forum that does not include formal proceedings.

  2. 2.

    ARCHER is known to not have any false positives or false negatives for a given input, but may have false negatives for inputs that it has not seen.

References

  1. Agarwal, S., Barik, R., Sarkar, V., Shyamasundar, R.K.: May-happen-in-parallel analysis of X10 programs. In: PPoPP, New York, NY, USA (2007)

    Google Scholar 

  2. Atzeni, S., Gopalakrishnan, G., Rakamarić, Z., Ahn, D.H., Laguna, I., Schulz, M., Lee, G.L., Protze, J., Müller, M.S.: Archer: effectively spotting data races in large OpenMP applications. In: IPDPS (2016)

    Google Scholar 

  3. Basupalli, V., Yuki, T., Rajopadhye, S., Morvan, A., Derrien, S., Quinton, P., Wonnacott, D.: Polyhedral analysis for the OpenMP programmer. In: Chapman, B.M., Gropp, W.D., Kumaran, K., Müller, M.S. (eds.) IWOMP 2011. LNCS, vol. 6665, pp. 37–53. Springer, Heidelberg (2011). doi:10.1007/978-3-642-21487-5_4

    Chapter  Google Scholar 

  4. Betts, A., Chong, N., Donaldson, A., Qadeer, S., Thomson, P.: GPUVerify: a verifier for GPU Kernels. In: OOPSLA (2012)

    Google Scholar 

  5. Chatarasi, P., Shirako, J., Sarkar, V.: Polyhedral optimizations of explicitly parallel programs. In: PACT (2015)

    Google Scholar 

  6. Chatarasi, P., Shirako, J., Sarkar, V.: Static data race detection for SPMD programs using an extended polyhedral representation. In: IMPACT (2016)

    Google Scholar 

  7. Clang, O.M.P.: CLANG Support for OpenMP 3.1. https://clang-omp.github.io

  8. Collard, J.F., Barthou, D., Feautrier, P.: Fuzzy array dataflow analysis. In: Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 1995, pp. 92–101. ACM, New York (1995)

    Google Scholar 

  9. Cytron, R., Lipkis, J., Schonberg, E.: a compiler-assisted approach to SPMD execution. In: Supercomputing, Los Alamitos, CA, USA (1990)

    Google Scholar 

  10. Darema, F., et al.: A single-program-multiple-data computational model for EPEX/FORTRAN. Parallel Comput. 7(1), 11–24 (1988)

    Article  MATH  Google Scholar 

  11. Dorta, A.J., Rodriguez, C., Sande, F.d., Gonzalez-Escribano, A.: The OpenMP source code repository. In: PDP, Washington, DC, USA (2005)

    Google Scholar 

  12. Feautrier, P., Lengauer, C.: Polyhedron model. In: Padua, D.A. (ed.) Encyclopedia of Parallel Computing, pp. 1581–1592. Springer, Heidelberg (2011)

    Google Scholar 

  13. Grauer-Gray, S., Xu, L., Searles, R., Ayalasomayajula, S., Cavazos, J.: Auto-tuning a High-Level Language Targeted to GPU Codes (2012)

    Google Scholar 

  14. Kamil, A., Yelick, K.: Concurrency analysis for parallel programs with textually aligned barriers. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds.) LCPC 2005. LNCS, vol. 4339, pp. 185–199. Springer, Heidelberg (2006). doi:10.1007/978-3-540-69330-7_13

    Chapter  Google Scholar 

  15. Ma, H., Diersen, S.R., Wang, L., Liao, C., Quinlan, D., Yang, Z.: Symbolic analysis of concurrency errors in OpenMP programs. In: ICPP, Washington, DC, USA (2013)

    Google Scholar 

  16. Mellor-Crummey, J.: Compile-time support for efficient data race detection in shared-memory parallel programs. In: PADD, New York, NY, USA (1993)

    Google Scholar 

  17. O’Callahan, R., Choi, J.D.: hybrid dynamic data race detection. In: Proceedings of PPoPP (2003)

    Google Scholar 

  18. OpenMP Specifications. http://openmp.org/wp/openmp-specifications

  19. Protze, J., Atzeni, S., Ahn, D.H., Schulz, M., Gopalakrishnan, G., Müller, M.S., Laguna, I., Rakamarić, Z., Lee, G.L.: Towards providing low-overhead data race detection for large OpenMP applications. In: Proceedings of the 2014 LLVM Compiler Infrastructure in HPC (2014)

    Google Scholar 

  20. Raman, R., Zhao, J., Sarkar, V., Vechev, M.T., Yahav, E.: Scalable and precise dynamic datarace detection for structured parallelism. In: Proceedings of PLDI (2012)

    Google Scholar 

  21. Sarkar, V., Harrod, W., Snavely, A.E.: Software Challenges in Extreme Scale Systems, Special Issue on Advanced Computing: The Roadmap to Exascale, January 2010

    Google Scholar 

  22. Verdoolaege, S., Grosser, T.: Polyhedral extraction tool. In: Second International Workshop on Polyhedral Compilation Techniques (IMPACT 2012), Paris, France (2012)

    Google Scholar 

  23. Yu, F., Yang, S.C., Wang, F., Chen, G.C., Chan, C.C.: Symbolic consistency checking of OpenMp parallel programs. In: LCTES (2012)

    Google Scholar 

  24. Yuki, T., Feautrier, P., Rajopadhye, S., Saraswat, V.: Array dataflow analysis for polyhedral X10 programs. In: Proceedings of PPoPP (2013)

    Google Scholar 

  25. Yuki, T., Feautrier, P., Rajopadhye, S.V., Saraswat, V.: Checking Race Freedom of Clocked X10 Programs. CoRR abs/1311.4305 (2013)

    Google Scholar 

  26. Zhang, Y., Duesterwald, E., Gao, G.R.: Concurrency analysis for shared memory programs with textually unaligned barriers. In: Adve, V., Garzarán, M.J., Petersen, P. (eds.) LCPC 2007. LNCS, vol. 5234, pp. 95–109. Springer, Heidelberg (2008). doi:10.1007/978-3-540-85261-2_7

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Prasanth Chatarasi .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Chatarasi, P., Shirako, J., Kong, M., Sarkar, V. (2017). An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection. In: Ding, C., Criswell, J., Wu, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2016. Lecture Notes in Computer Science(), vol 10136. Springer, Cham. https://doi.org/10.1007/978-3-319-52709-3_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-52709-3_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-52708-6

  • Online ISBN: 978-3-319-52709-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics