Towards Systematic Parallel Programming over MapReduce
Towards Systematic Parallel Programming over MapReduce
复制标题
DOI:
10.1007/978-3-642-23397-5_5
复制
发表时间:
2011-08
期刊:
影响因子:
--
通讯作者:
Yu Liu;Zhenjiang Hu;Kiminori Matsuzaki
中科院分区:
文献类型:
--
作者:
Yu Liu;Zhenjiang Hu;Kiminori Matsuzaki
MapReduce is a useful and popular programming model for data-intensive distributed parallel computing. But it is still a challenge to develop parallel programs with MapReduce systematically, since it is usually not easy to derive a proper divide-and-conquer algorithm that matches MapReduce. In this paper, we propose a homomorphism-based framework named Screwdriver for systematic parallel programming with MapReduce, making use of the program calculation theory of list homomorphisms. Screwdriver is implemented as a Java library on top of Hadoop. For any problem which can be resolved by two sequential functions that satisfy the requirements of the third homomorphism theorem, Screwdriver can automatically derive a parallel algorithm as a list homomorphism and transform the initial sequential programs to an efficient MapReduce program. Users need neither to care about parallelism nor to have deep knowledge of MapReduce. In addition to the simplicity of the programming model of our framework, such a calculational approach enables us to resolve many problems that it would be nontrivial to resolve directly with MapReduce.