ABSTRACT
Bulk Synchronous Parallel (BSP) is a simple but powerful high-level model for parallel computation. Using BSPlib, programmers can write BSP programs in the general purpose language C. Direct Remote Memory Access (DRMA) communication in BSPlib is enabled using registrations: associations between the local memories of all processes in the BSP computation. However, the semantics of registration is non-trivial and ambiguously specified and thus its faulty usage is a potential source of errors. We give a formal semantics of BSPlib with which we characterize correct registration. Anticipating a static analysis, we give a simplified programming model that guarantees correct registration usage, drawing upon previous work on textual alignment.
- A. Aiken and D. Gay. 1998. Barrier Inference. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '98). ACM, New York, NY, USA, 342--354. Google ScholarDigital Library
- O. Ballereau, F. Loulergue, and G. Hains. 1999. High-level BSP Programming: BSML and BSλ. In Proceedings of the first Scottish Functional Programming Workshop (Technical Report), P. Trinder and G. Michaelson (Eds.). Heriot-Watt University, Edinburgh, 43--52. Google ScholarDigital Library
- O. Bonorden, B. Juurlink, I. von Otte, and I. Rieping. 2003. The Paderborn University BSP (PUB) library. Parallel Comput. 29, 2 (Feb. 2003), 187--207. Google ScholarDigital Library
- B. Chapman, T. Curtis, S. Pophale, S. Poole, J. Kuehn, C. Koelbel, and L. Smith. 2010. Introducing OpenSHMEM: SHMEM for the PGAS community. In Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model. ACM, New York, NY, USA, 2. http://dl.acm.org/citation.cfm?id=2020375 Google ScholarDigital Library
- F. Dabrowski. 2018. Textual Alignment in SPMD Programs. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing (SAC '18). ACM, New York, NY, USA, 1046--1053. Google ScholarDigital Library
- J. Fortin and F. Gava. 2016. BSP-Why: A Tool for Deductive Verification of BSP Algorithms with Subgroup Synchronisation. International Journal of Parallel Programming 44, 3 (June 2016), 574--597. Google ScholarDigital Library
- F. Gava and J. Fortin. 2008. Formal Semantics of a Subset of the Paderborn's BSPlib. In Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies, 2008. PDCAT 2008. IEEE Press, Piscataway, NJ, USA, 269--276. Google ScholarDigital Library
- J. M. D. Hill, B. McColl, D. C. Stefanescu, M. W. Goudreau, K. Lang, S. B. Rao, T. Suel, T. Tsantilas, and R. H. Bisseling. 1998. BSPlib: The BSP Programming Library. Parallel Comput. 24, 14 (Dec. 1998), 1947--1980. Google ScholarDigital Library
- Message Passing Interface Forum. 2012. MPI: A Message-Passing Interface Standard Version 3.0. http://www.mpi-forum.org/docs/mpi-3.0Google Scholar
- D. M. Ritchie, B. W. Kernighan, and M. E. Lesk. 1988. The C Programming Language. Prentice Hall, Englewood Cliffs, NJ, USA. Google ScholarDigital Library
- K. Siddique, Z. Akhtar, E.J. Yoon, Y.Jeong, D. Dasgupta, and Y. Kim. 2016. Apache Hama: An emerging bulk synchronous parallel computing framework for big data applications. IEEE Access 4 (2016), 8879--8887.Google ScholarCross Ref
- J. Tesson and F. Loulergue. 2008. Formal Semantics of DRMA-Style Programming in BSPlib. In Parallel Processing and Applied Mathematics, R. Wyrzykowski, J. Dongarra, K. Karczewski, and J. Wasniewski (Eds.). Vol. 4967. Springer Berlin Heidelberg, Berlin, Heidelberg, 1122--1129. http://link.springer.com/10.1007/978-3-540-68111-3_119 Google ScholarDigital Library
- L. G. Valiant. 1990. A Bridging Model for Parallel Computation. Commun. ACM 33, 8 (Aug. 1990), 103--111. Google ScholarDigital Library
- A.N. Yzelman and Rob H. Bisseling. 2012. An object-oriented bulk synchronous parallel library for multicore programming. Concurrency and Computation: Practice and Experience 24, 5 (April 2012), 533--553. Google ScholarDigital Library
Index Terms
- Safe usage of registers in BSPlib
Recommendations
Automatic Cost Analysis for Imperative BSP Programs
Bulk Synchronous Parallel (BSP) is a model for parallel computing with predictable scalability. BSP has a cost model: programs can be assigned a cost which describes their resource usage on any parallel machine. However, the programmer has to manually ...
Hybrid bulk synchronous parallelism library for clustered smp architectures
HLPP '10: Proceedings of the fourth international workshop on High-level parallel programming and applicationsThis paper presents the design and implementation of BSP++, a C++ parallel programming library based on the Bulk Synchronous Parallelism model to perform high performance computing on both SMP and SPMD architectures using OpenMPI and MPI. We show how C++...
Formal semantics of DRMA-style programming in BSPlib
PPAM'07: Proceedings of the 7th international conference on Parallel processing and applied mathematicsBSPlib is a programming library for C and Fortran which supports bulk synchronous parallelism (BSP). This paper is about a formal semantics for the DRMA programming style of the BSPlib library. The aim is to study the behavior of BSPlib programs and to ...
Comments