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.
Keywords
- SPMD parallelism
- Data race detection
- Polyhedral model
- Phase mapping
- Space mapping
- May happen in parallel relations
This is a preview of subscription content, access via your institution.
Buying options


Notes
- 1.
An earlier version of this paper was presented at the IMPACT’16 workshop [6], a forum that does not include formal proceedings.
- 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
Agarwal, S., Barik, R., Sarkar, V., Shyamasundar, R.K.: May-happen-in-parallel analysis of X10 programs. In: PPoPP, New York, NY, USA (2007)
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)
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
Betts, A., Chong, N., Donaldson, A., Qadeer, S., Thomson, P.: GPUVerify: a verifier for GPU Kernels. In: OOPSLA (2012)
Chatarasi, P., Shirako, J., Sarkar, V.: Polyhedral optimizations of explicitly parallel programs. In: PACT (2015)
Chatarasi, P., Shirako, J., Sarkar, V.: Static data race detection for SPMD programs using an extended polyhedral representation. In: IMPACT (2016)
Clang, O.M.P.: CLANG Support for OpenMP 3.1. https://clang-omp.github.io
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)
Cytron, R., Lipkis, J., Schonberg, E.: a compiler-assisted approach to SPMD execution. In: Supercomputing, Los Alamitos, CA, USA (1990)
Darema, F., et al.: A single-program-multiple-data computational model for EPEX/FORTRAN. Parallel Comput. 7(1), 11–24 (1988)
Dorta, A.J., Rodriguez, C., Sande, F.d., Gonzalez-Escribano, A.: The OpenMP source code repository. In: PDP, Washington, DC, USA (2005)
Feautrier, P., Lengauer, C.: Polyhedron model. In: Padua, D.A. (ed.) Encyclopedia of Parallel Computing, pp. 1581–1592. Springer, Heidelberg (2011)
Grauer-Gray, S., Xu, L., Searles, R., Ayalasomayajula, S., Cavazos, J.: Auto-tuning a High-Level Language Targeted to GPU Codes (2012)
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
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)
Mellor-Crummey, J.: Compile-time support for efficient data race detection in shared-memory parallel programs. In: PADD, New York, NY, USA (1993)
O’Callahan, R., Choi, J.D.: hybrid dynamic data race detection. In: Proceedings of PPoPP (2003)
OpenMP Specifications. http://openmp.org/wp/openmp-specifications
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)
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)
Sarkar, V., Harrod, W., Snavely, A.E.: Software Challenges in Extreme Scale Systems, Special Issue on Advanced Computing: The Roadmap to Exascale, January 2010
Verdoolaege, S., Grosser, T.: Polyhedral extraction tool. In: Second International Workshop on Polyhedral Compilation Techniques (IMPACT 2012), Paris, France (2012)
Yu, F., Yang, S.C., Wang, F., Chen, G.C., Chan, C.C.: Symbolic consistency checking of OpenMp parallel programs. In: LCTES (2012)
Yuki, T., Feautrier, P., Rajopadhye, S., Saraswat, V.: Array dataflow analysis for polyhedral X10 programs. In: Proceedings of PPoPP (2013)
Yuki, T., Feautrier, P., Rajopadhye, S.V., Saraswat, V.: Checking Race Freedom of Clocked X10 Programs. CoRR abs/1311.4305 (2013)
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)