Definition
Bulk-synchronous parallelism is a type of coarse-grain parallelism, where inter-processor communication follows the discipline of strict barrier synchronization. Depending on the context, BSP can be regarded as a computation model for the design and analysis of parallel algorithms, or a programming model for the development of parallel software.
Discussion
Introduction
The model of bulk-synchronous parallel (BSP) computation was introduced by Valiant [77] as a “bridging model” for general-purpose parallel computing. The BSP model can be regarded as an abstraction of both parallel hardware and software, and supports an approach to parallel computation that is both architecture-independent and scalable. The main principles of BSP are the treatment of a communication medium as an abstract fully connected network, and the decoupling of all interaction between processors into point-to-point asynchronous data communication and barrier synchronization. Such a decoupling allows an...
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsBibliography
Alverson GA, Griswold WG, Lin C, Notkin D, Snyder L (1998) Abstractions for portable, scalable parallel programming. IEEE Trans Parallel Distrib Syst 9(1):71–86
Alves CER, Cáceres EN, Castro Jr AA, Song SW, Szwarcfiter JL (2003) Efficient parallel implementation of transitive closure of digraphs. In: Proceedings of EuroPVM/MPI, Venice. Lecture notes in computer science, vol 2840. Springer, pp 126–133
Alves CER, Cáceres EN, Dehne F, Song SW (2002) Parallel dynamic programming for solving the string editing problem on a CGM/BSP. In: Proceedings of the 14th ACM SPAA, Winnipeg, pp 275–281
Alves CER, Cáceres EN, Dehne F, Song SW (2003) A parallel wavefront algorithm for efficient biological sequence comparison. In: Proceedings of ICCSA, Montreal. Lecture notes in computer science, vol 2668. Springer, Berlin, pp 249–258
Alves CER, Cáceres EN, Song SW (2006) A coarse-grained parallel algorithm for the all-substrings longest common subsequence problem. Algorithmica 45(3):301–335
Ballereau O, Hains G, Lallouet A (2002) BSP constraint programming. In: Gorlatch S, Lengauer C (eds) Constructive methods for parallel programming, vol 10. Advances in computation: Theory and practice. Nova Science, New York, Chap 7
Bäumker A, Dittrich W, Meyer auf der Heide F (1998) Truly efficient parallel algorithms: 1-optimal multisearch for an extension of the BSP model. Theor Comput Sci 203(2):175–203
Bisseling RH (2004) Parallel scientific computation: A structured approach using BSP and MPI. Oxford University Press, New York
Bisseling RH, McColl WF (1993) Scientific computing on bulk synchronous parallel architectures. Preprint 836, Department of Mathematics, University of Utrecht, December 1993
Blanco V, González JA, León C, Rodríguez C, Rodríguez G, Printista M (2004) Predicting the performance of parallel programs. Parallel Comput 30:337–356
Bonorden O, Juurlink B, von Otte I, Rieping I (2003) The Paderborn University BSP (PUB) library. Parallel Comput 29(2): 187–207
Cáceres EN, Dehne F, Mongelli H, Song SW, Szwarcfiter JL (2004) A coarse-grained parallel algorithm for spanning tree and connected components. In: Proceedings of Euro-Par, Pisa. Lecture notes in computer science, vol 3149. Springer, Berlin, pp 828–831
Calinescu R, Evans DJ (1997) Bulk-synchronous parallel algorithms for QR and QZ matrix factorisation. Parallel Algorithms Appl 11:97–112
Chamberlain BL, Choi S-E, Lewis EC, Lin C, Snyder L, Weathersby WD (2000) ZPL: A machine independent programming language for parallel computers. IEEE Trans Softw Eng 26(3): 197–211
Cinque L, Di Maggio C (2001) A BSP realisation of Jarvis’ algorithm. Pattern Recogn Lett 22(2):147–155
Cole M (1999) Algorithmic skeletons. In: Hammond K, Michaelson G (eds) Research Directions in Parallel Functional Programming. Springer, London, pp 289–303
Cole M (2004) Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Comput 30:389–406
Corrêa R et al (eds) (2002) Models for parallel and distributed computation: theory, algorithmic techniques and applications, vol 67. Applied Optimization. Kluwer, Dordrecht
Dehne F, Dittrich W, Hutchinson D (2003) Efficient external memory algorithms by simulating coarse-grained parallel algorithms. Algorithmica 36(2):97–122
Dehne F, Fabri A, Rau-Chaplin A (1996) Scalable parallel computational geometry for coarse grained multicomputers. Int J Comput Geom 6:379–400
Diallo M, Ferreira A, Rau-Chaplin A, Ubéda S (1999) Scalable 2D convex hull and triangulation algorithms for coarse grained multicomputers. J Parallel Distrib Comput 56:47–70
Donaldson SR, Hill JMD, Skillicorn D (1999) Predictable communication on unpredictable networks: Implementing BSP over TCP/IP and UDP/IP. Concurr Pract Exp 11(11):687–700
Dymond P, Zhou J, Deng X (2001) A 2D parallel convex hull algorithm with optimal communication phases. Parallel Comput 27(3):243–255
Fantozzi C, Pietracaprina A, Pucci G (2003) A general PRAM simulation scheme for clustered machines. Int J Foundations Comput Sci 14(6):1147–1164
Fortune S, Wyllie J (1978) Parallelism in random access machines. In: Proceedings of ACM STOC, San Diego, pp 114–118
Gebremedhin AH, Essa\(\ddot{\mathrm{i}}\) di M, Lassous GI, Gustedt J, Telle JA (2006) PRO: A model for the design and analysis of efficient and scalable parallel algorithms. Nordic J Comput 13(4):215–239
Gebremedhin AH, Manne F (2000) Scalable parallel graph coloring algorithms. Concurr Pract Exp 12(12):1131–1146
Gerbessiotis AV, Siniolakis CJ (1996) Deterministic sorting and randomized median finding on the BSP model. In: Proceedings of the 8th ACM SPAA, Padua, pp 223–232
Gerbessiotis AV, Siniolakis CJ, Tiskin A (2002) Parallel priority queue and list contraction: The BSP approach. Comput Informatics 21:59–90
Gerbessiotis AV, Valiant LG (1994) Direct bulk-synchronous parallel algorithms. J Parallel Distrib Comput 33(2):251–267
Goldchleger A, Kon F, Goldman A, Finger M, Bezerra GC. InteGrade: Object-oriented Grid middleware leveraging idle computing power of desktop machines. Concurr Comput Pract Exp 16:449–454
Goodrich M (1996) Communication-efficient parallel sorting. In: Proceedings of the 28th ACM STOC, Philadelphia, pp 247–256
Gorlatch S, Lengauer C (eds) (2002) Constructive methods for parallel programming, vol 10. Advances in computation: Theory and practice. Nova Science, New York
Goudreau MW, Lang K, Rao SB, Suel T, Tsantilas T (1999) Portable and efficient parallel computing using the BSP model. IEEE Trans Comput 48(7):670–689
Gu Y, Lee B-S, Cai W (2001) JBSP: A BSP programming library in Java. J Parallel Distrib Comput 61:1126–1142
Hains G, Loulergue F (2002) Functional bulk synchronous parallel programming using the BSMLlib library. In: Gorlatch S, Lengauer C (eds) Constructive methods for parallel programming, vol 10. Advances in computation: Theory and practice. Nova Science, New York, Chap 11
Hammond K, Michaelson G (eds) (1999) Research directions in parallel functional programming. Springer, London
Heywood T, Ranka S (1992) A practical hierarchical model of parallel computation I: The model. J Parallel Distrib Comput 16(3):212–232
Hill J (1999) Portability of performance in the BSP model. In: Hammond K, Michaelson G (eds) Research directions in parallel functional programming. Springer, London, pp 267–287
Hill JMD, Donaldson SR, Lanfear T (1998) Process migration and fault tolerance of BSPlib programs running on a network of workstations. In: Pritchard D, Reeve J (eds) Proceedings of Euro-Par, Southampton. Lecture notes in computer science, vol 1470. Springer, Berlin, pp 80–91
Hill JMD, Jarvis SA, Siniolakis C, Vasilev VP (1998) Analysing an SQL application with a BSPlib call-graph profiling tool. In: Pritchard D, Reeve J (eds) Proceedings of Euro-Par. Lecture notes in computer science, vol 1470. Springer, Berlin, pp 157–165
Hill JMD, McColl WF, Stefanescu DC, Goudreau MW, Lang K, Rao SB, Suel T, Tsantilas T, Bisseling RH (1998) BSPlib: The BSP programming library. Parallel Comput 24(14):1947–1980
Hill JMD, Skillicorn DB (1998) Lessons learned from implementing BSP. Future Generation Comput Syst 13(4–5):327–335
Hinsen K (2003) High-level parallel software development with Python and BSP. Parallel Process Lett 13(3):473–484
Ishimizu T, Fujiwara A, Inoue M, Masuzawa T, Fujiwara H (2002) Parallel algorithms for selection on the BSP and \({{\rm BSP}}^{{_\ast}}\) models. Syst Comput Jpn 33(12):97–107
Juurlink BHH, Wijshoff HAG (1996) The E-BSP model: Incorporating general locality and unbalanced communication into the BSP model. In: Bougé et al (eds) Proceedings of Euro-Par (Part II), Lyon. Lecture notes in computer science, vol 1124. Springer, Berlin, pp 339–347
Juurlink BHH, Wijshoff HAG (1998) A quantitative comparison of parallel computation models. ACM Trans Comput Syst 16(3): 271–318
Kee Y, Ha S (2002) An efficient implementation of the BSP programming library for VIA. Parallel Process Lett 12(1):65–77
Keßler CW (2000) NestStep: Nested parallelism and virtual shared memory for the BSP model. J Supercomput 17:245–262
Kim S-R, Park K (2000) Fully-scalable fault-tolerant simulations for BSP and CGM. J Parallel Distrib Comput 60(12):1531–1560
Krusche P, Tiskin A (2006) Efficient longest common subsequence computation using bulk-synchronous parallelism. In: Proceedings of ICCSA, Glasgow. Lecture notes in computer science, vol 3984. Springer, Berlin, pp 165–174
Krusche P, Tiskin A (2010) Longest increasing subsequences in scalable time and memory. In: Proceedings of PPAM 2009, Revised Selected Papers, Part I. Lecture notes in computer science, vol 6067. Springer, Berlin, pp 176–185
Krusche P, Tiskin A (2010) New algorithms for efficient parallel string comparison. In: Proceedings of ACM SPAA, Santorini, pp 209–216
Lecomber DS, Siniolakis CJ, Sujithan KR (2000) PRAM programming: in theory and in practice. Concurr Pract Exp 12:211–226
Mattsson H, Kessler CW (2004) Towards a virtual shared memory programming environment for grids. In: Proceedings of PARA, Copenhagen. Lecture notes in computer science, vol 3732. Springer-Verlag, pp 519–526
McColl WF (1995) Scalable computing. In: van Leeuwen J (ed) Computer science today: Recent trends and developments. Lecture notes in computer science, vol 1000. Springer, Berlin, pp 46–61
McColl WF (1996) Universal computing. In: L. Bougé et al (eds) Proceedings of Euro-Par (Part I), Lyon. Lecture notes in computer science, vol 1123. Springer, Berlin, pp 25–36
McColl WF, Miller Q (1995) Development of the GPL language. Technical report (ESPRIT GEPPCOM project), Oxford University Computing Laboratory
McColl WF, Tiskin A (1999) Memory-efficient matrix multiplication in the BSP model. Algorithmica 24(3/4):287–297
Miller R (1999) A library for bulk-synchronous parallel programming. In: Proceeding of general purpose parallel computing, British Computer Society, pp 100–108
Morin P (2000) Coarse grained parallel computing on heterogeneous systems. In: Proceedings of ACM SAC, Como, pp 628–634
Nibhanupudi MV, Szymanski BK (1998) Adaptive bulk-synchronous parallelism on a network of non-dedicated workstations. In: High performance computing systems and applications. Kluwer, pp 439–452
The Oxford BSP Toolset (1998) http://www.bsp-worldwide.org/implmnts/oxtool
Ramachandran V (1999) A general purpose shared-memory model for parallel computation. In: Heath MT, Ranade A, Schreiber RS (eds) Algorithms for parallel processing. IMA volumes in mathematics and applications, vol 105. Springer-Verlag, New York
Saukas LG, Song SW (1999) A note on parallel selection on coarse-grained multicomputers. Algorithmica, 24(3–4):371–380, 1999
Sibeyn J, Kaufmann M (1997) BSP-like external-memory computation. In: Bongiovanni GC, Bovet DP, Di Battista G (eds) Proceedings of CIAC, Rome. Lecture notes in computer science, vol 1203. Springer, Berlin, pp 229–240
Skillicorn DB (2002) Predictable parallel performance: The BSP model. In: Corrêa R et al (eds) Models for parallel and distributed computation: theory, algorithmic techniques and applications, vol 67. Applied Optimization. Kluwer, Dordrecht, pp 85–115
Song SW (2002) Parallel graph algorithms for coarse-grained multicomputers. In: Corrêa R et al (eds) Models for parallel and distributed computation: theory, algorithmic techniques and applications, vol 67, Applied optimization. Kluwer, Dordrecht, pp 147–178
Tiskin A (1998) Bulk-synchronous parallel multiplication of Boolean matrices. In: Proceedings of ICALP Aalborg. Lecture notes in computer science, vol 1443. Springer, Berlin, pp 494–506
Tiskin A (1998) The bulk-synchronous parallel random access machine. Theor Comput Sci 196(1–2):109–130
Tiskin A (2001) All-pairs shortest paths computation in the BSP model. In: Proceedings of ICALP, Crete. Lecture notes in computer science, vol 2076. Springer, Berlin, pp 178–189
Tiskin A (2001) A new way to divide and conquer. Parallel Process Lett 11(4):409–422
Tiskin A (2002) Parallel convex hull computation by generalised regular sampling. In: Proceedings of Euro-Par, Paderborn. Lecture notes in computer science, vol 2400. Springer, Berlin, pp 392–399
Tiskin A (2005) Efficient representation and parallel computation of string-substring longest common subsequences. In: Proceedings of ParCo Malaga. NIC Series, vol 33. John von Neumann Institute for Computing, pp 827–834
Tiskin A (2007) Communication-efficient parallel generic pairwise elimination. Future Generation Comput Syst 23:179–188
Tiskin A (2010) Parallel selection by regular sampling. In: Proceedings of Euro-Par (Part II), Ischia. Lecture notes in computer science, vol 6272. Springer, pp 393–399
Valiant LG (1990) A bridging model for parallel computation. Commun ACM 33(8):103–111
Vasilev V (2003) BSPGRID: Variable resources parallel computation and multiprogrammed parallelism. Parallel Process Lett 13(3):329–340
Williams TL, Parsons RJ (2000) The heterogeneous bulk synchronous parallel model. In: Rolim J et al (eds) Proceedings of IPDPS workshops Cancun. Lecture notes in computer science, vol 1800. Springer, Berlin, pp 102–108
Zheng W, Khan S, Xie H (1999) BSP performance analysis and prediction: Tools and applications. In: Malyshkin V (ed) Proceedings of PaCT, Newport Beach. Lecture notes in computer science, vol 1662. Springer, Berlin, pp 313–319
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media, LLC
About this entry
Cite this entry
Tiskin, A. (2011). BSP (Bulk Synchronous Parallelism). In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_311
Download citation
DOI: https://doi.org/10.1007/978-0-387-09766-4_311
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering