Is it accurate to call the mapReduce framework a type of bulk synchronous parallel programming framework with no local memory retention within processors between synchronizations? If not, what parallel programming model most accurately encapsulates the mapReduce framework?
In section 2 of http://arxiv.org/abs/1101.1902, the authors define a model of MapReduce that is intentionally structured like BSP. They prove simulation theorems as well. May be a good place to start.
Yes, my opinion is that classical MapReduce is a BSP model (and therefore has its inherent limitations on the maximum possible parallel performance that can be achieved). However, newer work on MapReduce seems to be focused on looser notions of synchronization, which would take this "generalized MapReduce" out of the strict BSP framework. In particular, if one replicates some of the data then the synchronization structure can be relaxed, yielding performance gains.
Since in MapReduce there is a simple and structured graph underlying the computation, this can IMHO classified as a data-flow model.