Domain-Specific Optimization Strategy for Skeleton Programs
Skeletal parallel programming enables us to develop parallel programs easily by composing ready-made components called skeletons. However, a simply-composed skeleton program often lacks efficiency due to overheads of intermediate data structures and communications. Many studies have focused on optimizations by fusing successive skeletons to eliminate the overheads. Existing fusion transformations, however, are too general to achieve adequate efficiency for some classes of problems. Thus, a specific fusion optimization is needed for a specific class. In this paper, we propose a strategy for domain-specific optimization of skeleton programs. In this strategy, one starts with a normal form that abstracts the programs of interest, then develops fusion rules that transform a skeleton program into the normal form, and finally makes efficient parallel implementation of the normal form. We illustrate the strategy with a case study: optimization of skeleton programs involving neighbor elements, which is often seen in scientific computations.
KeywordsNormal Form Parallel Implementation Fusion Rule Input List Fusion Optimization
Unable to display preview. Download preview PDF.
- 1.Cole, M.: Algorithmic Skeletons: Structural Management of Parallel Computation. In: Research Monographs in Parallel and Distributed Computing, MIT Press, Cambridge (1989)Google Scholar
- 2.Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2002)Google Scholar
- 3.Gorlatch, S., Wedler, C., Lengauer, C.: Optimization rules for programming with collective operations. In: IPPS / SPDP 1999. Procedeeings of 13th International Parallel Processing Symposium / 10th Symposium on Parallel and Distributed Processing, San Juan, Puerto Rico, April 12–16, 1999, IEEE Computer Society, Los Alamitos (1999)Google Scholar
- 4.Wedler, C., Lengauer, C.: On linear list recursion in parallel. Acta Informatica 35(10), (1998)Google Scholar
- 6.Matsuzaki, K., Kakehi, K., Iwasaki, H., Hu, Z., Akashi, Y.: A fusion-embedded skeleton library. In: Danelutto, M., Vanneschi, M., Laforenza, D. (eds.) Euro-Par 2004. LNCS, vol. 3149, Springer, Heidelberg (2004)Google Scholar
- 7.Grelck, C., Scholz, S.B.: Merging compositions of array skeletons in SaC. Parallel Computing 32(7-8) (2006)Google Scholar
- 8.Wadler, P.: Deforestation: Transforming programs to eliminate trees. In: Ganzinger, H. (ed.) ESOP 1988. LNCS, vol. 300, Springer, Heidelberg (1988)Google Scholar
- 9.Gill, A.J., Launchbury, J., Jones, S.L.P.: A short cut to deforestation. In: FPCA 1993. Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 9–11, 1993, ACM Press, New York (1993)Google Scholar
- 10.Emoto, K., Matsuzaki, K., Hu, Z., Takeichi, M.: Domain-specific optimization for skeleton programs involving neighbor elements. Technical Report METR2007-05, Department of Mathematical Informatics, University of Tokyo (2007)Google Scholar
- 11.Matsuzaki, K., Iwasaki, H., Emoto, K., Hu, Z.: A library of constructive skeletons for sequential style of parallel programming. In: InfoScale 2006. Proceedings of the 1st international conference on Scalable information systems. ACM International Conference Proceeding Series, vol. 152, ACM Press, New York (2006)Google Scholar