What is the difference between BSP and MPI?
I know Pregel’s graph computation framework is based on BSP. Why didn’t they use MPI directly or develop a framework based on MPI?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Bulk Synchronous Parallel (BSP) is an abstract machine, like PRAM. Actions in BSP are “supersteps” that mix communication and computation with a barrier synchronization across all processes. BSP also famously has a cost model.
The Message Passing Interface (MPI) is a standard API for communication in distributed-memory parallel applications. There are numerous implementations of this API, both commercial and open source.
There are some libraries that support BSP-model communication, but there is no BSP standard API. So when the creators of Pregel say they are using BSP, they mean they are using asynchronous communication to schedule messages, followed by some sort of barrier. It is definitely possible to do this in MPI-2 using the remote-memory access (“one-sided communication”) functions like
MPI_Put().