Skip to main content
Log in

On Single-Valuedness in Textually Aligned SPMD Programs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Single-valuedness is a property of an expression occurring in a SPMD program and states that concomitant evaluations of this expression lead to the same value at all processes. Although widely used, this property still lacks a formal definition, which is necessary to tackle the subtleties of the notion of concomitance. First, we propose such a definition in which the states of all processes can be compared when they reach textually aligned program points. These program points, of which all processes execute exactly the same textual instances, act as logical global synchronization barriers. Single-valuedness is then defined at these program points. Secondly, we show how textual alignment and single-valuedness can be used to ensure proper use of Direct Remote Memory Access (DRMA) in BSP programs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Larbey, F., Auguin, M.: Opsila an advanced simd for numerical analysis and signal processing. In Microcomputers: developments in industry, business, and education, Ninth EUROMICRO Symposium on Microprocessing and Microprogramming, pages 311–318, Madrid, (1983)

  2. Darema, F.: Spmd model: past, present and future, recent advances in parallel virtual machine and message passing interface. In Proceedings of the 8th European PVM/MPI Users’ Group Meeting, Lecture Notes in Computer Science, Santorini/Thera, Greece, (2001)

  3. Flynn, Michael J.: Some computer organizations and their effectiveness. IEEE Trans. Comput. 21(9), 948–960 (1972)

    Article  Google Scholar 

  4. Message Passing Interface Forum. MPI: A Message-Passing Interface Standard Version 3.1

  5. OpenMP Architecture Review Board. OpenMP application program interface version 3.0. http://www.openmp.org/mp-documents/spec30.pdf, May (2008)

  6. van Duijn, Mick, Visscher, Koen, Visscher, Paul : BSPLib: a fast, and easy to use C++ implementation of the Bulk Synchronous Parallel (BSP) threading model. http://bsplib.eu/

  7. Loulergue, Frédéric, Hains, Gaétan: Functional parallel programming with explicit processes: Beyond SPMD, pages 530–537. Springer Berlin Heidelberg, Berlin, Heidelberg, (1997)

  8. Loulergue, Frédéric, Gava, Frédéric, Billiet, David: Bulk Synchronous Parallel ML: Modular Implementation and Performance Prediction. volume 3515 of LNCS, pages 1046–1054. Springer, (2005)

  9. Gava, F., Loulergue, F.: A static analysis for bulk synchronous parallel ml to avoid parallel nesting. Future Generation Computer Systems, 21(5):665 – 671, (2005). Parallel computing technologies

  10. Darema, Frederica: SPMD Computational Model, pages 1933–1943. Springer US, Boston, MA, (2011)

  11. Hill, Jonathan M. D., McColl, Bill, Stefanescu, Dan C., Goudreau, Mark W., Lang, Kevin , Rao, Satish B., Suel, Torsten, Tsantilas, Thanasis, Bisseling, Rob H.: Bsplib: The bsp programming library. Parallel Comput., 24(14):1947–1980, December (1998)

  12. Yzelman, A.N., Bisseling, R.H., Roose, D., Meerbergen, K.: Multicorebsp for c: A high-performance library for shared-memory parallel programming. Int. J. Parallel Program. 42(4), 619–642 (2014)

    Article  Google Scholar 

  13. Kamil, Amir, Yelick, Katherine: Concurrency analysis for parallel programs with textually aligned barriers. In Proceedings of the 18th International Conference on Languages and Compilers for Parallel Computing, LCPC’05, pages 185–199, Berlin, Heidelberg, (2006). Springer-Verlag

  14. Chen, C., Huo, W., Li, L., Feng, X., Xing, K.: Can we make it faster? efficient may-happen-in-parallel analysis revisited. In 2012 13th International Conference on Parallel and Distributed Computing, Applications and Technologies, pages 59–64, Dec (2012)

  15. Chatarasi, Prasanth, Shirako, Jun, Kong, Martin, Sarkar, Vivek: An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection, pages 106–120. Springer International Publishing, Cham, (2017)

  16. Jakobsson, Arvid, Dabrowski, Frédéric., Bousdira, Wadoud, Loulergue, Frédéric, Hains, Gaetan: Replicated synchronization for imperative BSP programs. Procedia Computer Science, 108:535–544, : International Conference on Computational Science, ICCS 2017, 12–14 June 2017. Zurich, Switzerland (2017)

  17. Dabrowski, Frederic: Textual Alignment in SPMD Programs. In SAC ’18: Proceedings of the 33rd Annual ACM Symposium on Applied Computing, Pau, France, April (2018)

  18. Dabrowski, Frédéric.: A denotational semantics of textually aligned spmd programs. J. Logic. Algeb. Methods Program. 108, 90–104 (2019)

  19. Aiken, Alexander, Gay, David: Barrier inference. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’98, pages 342–354, New York, NY, USA, (1998). ACM

  20. Gay, D.: Barrier Inference. PhD thesis, University of California, Berkeley, (1998)

  21. Yelick, Kathy, Semenzato, Luigi, Pike, Geoff, Miyamoto, Carleton, Liblit, Ben, Krishnamurthy, Arvind, Hilfinger, Paul, Graham, Susan , Gay, David, Colella, Phil , Aiken, Alex: Titanium: a high-performance java dialect. Concurrency: Practice and Experience, 10(11-13):825–836, (1998)

  22. Hilfinger P. N., (editor), Bonachea, Dan, Gay, David , Graham, Susan, Liblit, Ben, Pike, Geoff, Yelick, Katherine: Titanium Language Reference Manual, Version 1.16.8. Technical Report UCB//CSD-04-1163x, Computer Science, UC Berkeley, (2004)

  23. Kamil, Amir, Yelick, Katherine: Enforcing Textual Alignment of Collectives Using Dynamic Checks, pages 368–382. Springer Berlin Heidelberg, Berlin, Heidelberg, (2010)

  24. Kamil, A.: Problems with the titanium type system for alignment of collectives. unpublished note, (2006)

  25. Knüpfer, Andreas, Hilbrich, Tobias, Protze,Joachim, Schuchart, Joseph: Dynamic Analysis to Support Program Development with the Textually Aligned Property for OpenSHMEM Collectives, pages 105–118. Springer International Publishing, Cham, (2015)

  26. Huchant, Pierre, Saillard, Emmanuelle, Barthou, Denis, Carribault, Patrick: Multi-valued expression analysis for collective checking. In Ramin Yahyapour, editor, Euro-Par 2019: Parallel Processing, pages 29–43, Cham, (2019). Springer International Publishing

  27. Zhang, Yuan, Duesterwald, Evelyn: Barrier matching for programs with textually unaligned barriers. In Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’07, pages 194–204, New York, NY, USA, (2007). ACM

  28. Bousdira, Wadoud, Jakobsson, Arvid, Dabrowski, Frederic: Safe Usage of Registers in BSPlib. In SAC 2019, Limassol, Cyprus, April (2019)

  29. Gava, Frédéric, Fortin, Jean: Formal semantics of a subset of the paderborn’s bsplib. In Proceedings of the 2008 Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies, PDCAT ’08, page 269–276, USA, (2008). IEEE Computer Society

  30. Tesson, Julien, Loulergue, Frédéric: Formal semantics of drma-style programming in bsplib. In Roman Wyrzykowski, Jack Dongarra, Konrad Karczewski, and Jerzy Wasniewski, editors, Parallel Processing and Applied Mathematics, pages 1122–1129, Berlin, Heidelberg, (2008). Springer Berlin Heidelberg

  31. Fortin, Jean, Gava, Frédéric: Towards mechanised semantics of hpc: The bsp with subgroup synchronisation case. In Proceedings of the ICA3PP International Workshops and Symposiums on Algorithms and Architectures for Parallel Processing - Volume 9532, page 222–237, Berlin, Heidelberg, (2015). Springer-Verlag

  32. Software. BSML: Bulk synchronous parallel ml, a library for BSP programming in OCaml. https://traclifo.univ-orleans.fr/BSML/

  33. Software. BSPOnMPI, a platform independent software library for developing parallel programs. http://bsponmpi.sourceforge.net/

  34. Software. MultiCoreBSP, BSP programming on modern multicore processors. http://www.multicorebsp.com/

  35. The Coq Development Team. Coq. https://coq.inria.fr

  36. Dabrowski, Frédéric: Jlamp (2019), coq artefact. https://github.com/DabrowskiFr/coq-jlamp2018

  37. Huchant, Pierre: Saillard, Emmanuelle, Barthou, Denis, Brunie, Hugo, Carribault, Patrick: PARCOACH Extension for a Full-Interprocedural Collectives Verification. In Second International Workshop on Software Correctness for HPC Applications, Dallas, United States (2018)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frédéric Dabrowski.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dabrowski, F. On Single-Valuedness in Textually Aligned SPMD Programs. Int J Parallel Prog 49, 802–819 (2021). https://doi.org/10.1007/s10766-021-00710-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-021-00710-5

Keywords

Navigation