Filter-embedding semiring fusion for programming with MapReduce

被引:9
作者
Emoto, Kento [1 ]
Fischer, Sebastian [2 ]
Hu, Zhenjiang [2 ]
机构
[1] Univ Tokyo, Bunkyo Ku, Tokyo 113, Japan
[2] Natl Inst Informat, Tokyo, Japan
基金
日本学术振兴会;
关键词
MapReduce; List homomorphisms; Functional programming; Program transformation; Program calculation; Semiring computation; MODEL;
D O I
10.1007/s00165-012-0241-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We show that MapReduce, the de facto standard for large scale data-intensive parallel programming, can be equipped with a programming theory in calculational form. By integrating the generate-and-test programming paradigm and semirings for aggregation of results, we propose a novel parallel programming framework for MapReduce. The framework consists of two important calculation theorems: the shortcut fusion theorem of semiring homomorphisms bridges the gap between specifications and efficient implementations, and the filter-embedding theorem helps to develop parallel programs in a systematic and incremental way.
引用
收藏
页码:623 / 645
页数:23
相关论文
共 49 条
[41]  
Skillicorn DB, 1992, NATO ARW SOFTWARE PA, P92
[42]  
Takano A., 1995, Conference Record of FPCA '95. SIGPLAN-SIGARCH-WG2.8. Conference on Functional Programming Languages and Computer Architecture, P306, DOI 10.1145/224164.224221
[43]  
Takano A, 1998, ACM COMPUT SURV, V30
[44]   A UNIFIED APPROACH TO PATH PROBLEMS [J].
TARJAN, RE .
JOURNAL OF THE ACM, 1981, 28 (03) :577-593
[45]  
Thomas W., 1990, Handbook of Theoretical Computer Science, P133, DOI [10.1016/B978-0-444-88074-1.50009-3, DOI 10.1016/B978-0-444-88074-1.50009-3, 10.1016/b978-0-444-88074-1.50009-3]
[46]  
Wadler Philip, 1989, FUNCTIONAL PROGRAMMI, P347
[47]  
Yang He, 1988, 9th International Conference on Pattern Recognition (IEEE Cat. No.88CH2614-6), P718, DOI 10.1109/ICPR.1988.28338
[48]   LONGEST SEGMENT PROBLEMS [J].
ZANTEMA, H .
SCIENCE OF COMPUTER PROGRAMMING, 1992, 18 (01) :39-66
[49]  
Zhenjiang Hu, 1998, Conference Record of POPL '98: 25th ACM SIGPLAN-SIGACT. Symposium on Principles of Programming Languages, P316