Parallelism in sequential functional languages
Parallelism in sequential functional languages
复制标题
顺序函数语言中的并行性
DOI:
10.1145/224164.224210
复制
发表时间:
1995
期刊:
影响因子:
--
通讯作者:
John Greiner
中科院分区:
文献类型:
--
作者:
G. Blelloch;John Greiner
This paper formally studies the question of how much parallelism is available in cal-by-value functional languages with no parallel extensions (i. e., the functional sub;ets of ML or Scheme). In particular we are interested in placing bounds on how much parallelism is available for various problems. To do this we introduce a complexity model, the PAL, based on the call-by-value A-calculus. The model is defined in terms of a profiling semantics and measures complexity in terms of the total work and the parallel depth of a computation. We describe a simulation of the A-PAL (the PAL extended with arithmetic operations) on various parallel machine models, including the butterfly, hypercube, and PRAM models and prove simulation bounds. In particular the simulat ions are workeficient (the processor-time product on the machines is within a constant factor of the work on the A-PAL), and for p processors the slowdown (time on the machines divided by depth on the A-PAL) is proportional to at most O(log p). We also prove bounds for simulating the PRAM on the A-PAL. Based on the model, we describe and analyze tree-based versions of quicksort and merge sort. We show that for an input of size n these algorithms run on the A-PAL model with O(rI log n) work and 0(log2 n) depth (expected case for quicksort ).