Showing posts from September, 2012

Review of a paper about scalable things, MPI, and granularity


Pjotr Prins, Dominique Belhachemi, Steffen Möller and Geert Smant
Scalable Computing for Evolutionary Genomics
Methods in Molecular Biology, 2012, Volume 856, Part 5, 529-545,
DOI: 10.1007/978-1-61779-585-5_22


p. 531

"Typically, parallel programming implies complicated data and control flow; causes dead locks, where depending threads wait for each other forever; and causes race conditions, where threads go into eternal loops."

This is simply not true with 'message passing'. With message passing, the source code contain no lock at all. Usually, you only need 3 functions to pass messages: send(), probe(), and receive().

send() => sends a message to a destinationprobe() => probes a message from a source, if anyreceive() => receives a message
Also, race conditions are not about eternal loops at all. A race can usually occur when a given bug is triggered depending on concurrent completion of at least two parallel events.

p. 531

"in a “scatter a…