TY - GEN

T1 - A short cut to parallelization theorems

AU - Morihata, Akimasa

PY - 2013/11/12

Y1 - 2013/11/12

N2 - The third list-homomorphism theorem states that if a function is both foldr and foldl, it has a divide-and-conquer parallel implementation as well. In this paper, we develop a theory for obtaining such parallelization theorems. The key is a new proof of the third list-homomorphism theorem based on shortcut deforestation. The proof implies that there exists a divide-and-conquer parallel program of the form of h (x 'merge' y) = h1 × ⊙ h 2 y, where h is the subject of parallelization, merge is the operation of integrating independent substructures, h1 and h 2 are computations applied to substructures, possibly in parallel, and ⊙ merges the results calculated for substructures, if (i) h can be specified by two certain forms of iterative programs, and (ii) merge can be implemented by a function of a certain polymorphic type. Therefore, when requirement (ii) is fulfilled, h has a divide-and-conquer implementation if h has two certain forms of implementations. We show that our approach is applicable to structure-consuming operations by catamorphisms (folds), structure-generating operations by anamorphisms (unfolds), and their generalizations called hylomorphisms.

AB - The third list-homomorphism theorem states that if a function is both foldr and foldl, it has a divide-and-conquer parallel implementation as well. In this paper, we develop a theory for obtaining such parallelization theorems. The key is a new proof of the third list-homomorphism theorem based on shortcut deforestation. The proof implies that there exists a divide-and-conquer parallel program of the form of h (x 'merge' y) = h1 × ⊙ h 2 y, where h is the subject of parallelization, merge is the operation of integrating independent substructures, h1 and h 2 are computations applied to substructures, possibly in parallel, and ⊙ merges the results calculated for substructures, if (i) h can be specified by two certain forms of iterative programs, and (ii) merge can be implemented by a function of a certain polymorphic type. Therefore, when requirement (ii) is fulfilled, h has a divide-and-conquer implementation if h has two certain forms of implementations. We show that our approach is applicable to structure-consuming operations by catamorphisms (folds), structure-generating operations by anamorphisms (unfolds), and their generalizations called hylomorphisms.

KW - Divide-and-conquer parallelism

KW - Shortcut deforestation

KW - Third list-homomorphism theorem

UR - http://www.scopus.com/inward/record.url?scp=84887186369&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84887186369&partnerID=8YFLogxK

U2 - 10.1145/2500365.2500580

DO - 10.1145/2500365.2500580

M3 - Conference contribution

AN - SCOPUS:84887186369

SN - 9781450323260

T3 - Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP

SP - 245

EP - 256

BT - ICFP 2013 - Proceedings of the 2013 ACM SIGPLAN International Conference on Functional Programming

T2 - 2013 18th ACM SIGPLAN International Conference on Functional Programming, ICFP 2013

Y2 - 25 September 2013 through 27 September 2013

ER -