Farms, Pipes, Streams and Reforestation: Reasoning about Structured Parallel Processes using Types and Hylomorphisms

被引:12
作者
Castro, David [1 ]
Hammond, Kevin [1 ]
Sarkar, Susmit [1 ]
机构
[1] Univ St Andrews, Sch Comp Sci, St Andrews, Fife, Scotland
基金
英国工程与自然科学研究理事会;
关键词
Parallelism; type-systems; hylomorphisms; term rewriting systems;
D O I
10.1145/3022670.2951920
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The increasing importance of parallelism has motivated the creation of better abstractions for writing parallel software, including structured parallelism using nested algorithmic skeletons. Such approaches provide high-level abstractions that avoid common problems, such as race conditions, and often allow strong cost models to be defined. However, choosing a combination of algorithmic skeletons that yields good parallel speedups for a program on some specific parallel architecture remains a difficult task. In order to achieve this, it is necessary to simultaneously reason both about the costs of different parallel structures and about the semantic equivalences between them. This paper presents a new type-based mechanism that enables strong static reasoning about these properties. We exploit well-known properties of a very general recursion pattern, hylomorphisms, and give a denotational semantics for structured parallel processes in terms of these hylomorphisms. Using our approach, it is possible to determine formally whether it is possible to introduce a desired parallel structure into a program without altering its functional behaviour, and also to choose a version of that parallel structure that minimises some given cost model.
引用
收藏
页码:4 / 17
页数:14
相关论文
共 35 条
  • [1] [Anonymous], 2003, PATTERNS SKELETONS P
  • [2] [Anonymous], 1998, Term Rewriting and All That
  • [3] Chi Yun-Yan, 2011, LECT NOTES COMPUTER, V7078, P74
  • [4] Cole M.I., 1989, Algorithmic skeletons: Structured management of parallel computation
  • [5] Fischer J., 2002, Parallel Processing Letters, V12, P229, DOI 10.1142/S012962640200094X
  • [6] Fokkinga M. M., 1991, TECHNICAL REPORT
  • [7] Geser A., 1999, J FUNCTIONAL PROGRAM, V9, P649
  • [8] Ghani N., 1995, Typed Lambda Calculi and Applications. Second International Conference on Typed Lambda Calculi and Applications, TLCA '95. Proceedings, P171, DOI 10.1007/BFb0014052
  • [9] Computing downwards accumulations on trees quickly
    Gibbons, J
    [J]. THEORETICAL COMPUTER SCIENCE, 1996, 169 (01) : 67 - 80
  • [10] Gibbons J, 1996, J FUNCT PROGRAM, V6, P657