Combining Fusion Optimizations and Piecewise Execution of Nested Data-Parallel Programs
Nested data-parallel programs often have large memory requirements due to their high degree of parallelism. Piecewise execution is an implementation technique used to minimize the space needed. In this paper, we present a combinination of piecewise execution and loop-fusion techniques. Both a formal framework and the execution model based on threads are presented. We give some experimental results, which demonstrate the good performance in memory consumption and execution time.
KeywordsMemory Consumption Execution Model Library Function Data Parallelism Absolute Speedup
Unable to display preview. Download preview PDF.
- 1.G. E. Blelloch. NESL: A nested data-parallel language. Technical report, School of Computer Science, Carnegie Mellon University, 1995.Google Scholar
- 3.G. Keller. Transformation-based Implementation of Nested Data Parallelism for Distributed Memory Machines. PhD thesis, Technische Universität Berlin, 1999.Google Scholar
- 4.G. Keller and M. M. T. Chakravarty. On the distributed implementation of aggregate data structures by program transformation. In HIPS’ 99. IEEE CS, 1999.Google Scholar
- 5.D. Palmer, J. Prins, S. Chatterjee, and R. Faith. Piecewise execution of nested data-parallel programs. In LCPC’ 95. Springer, 1996.Google Scholar
- 6.W. Pfannenstiel. Piecewise execution of nested parallel programs — a thread-based approach. In P. Amestoy, P. Berger, M. Daydé, I. Duff, V. Frayssé, L. Giraud, and D. Ruiz, editors, EuroPar’99, LNCS 1685, pages 445–449. Springer, 1999.Google Scholar
- 7.W. Pfannenstiel. Thread-based piecewise execution of nested data-parallel programs: Implementation and case studies. Technical Report 99-12, TU Berlin, 1999.Google Scholar
- 8.K. Taura and A. Yonezawa. Fine-grain multithreading with minimal compiler support-a cost effective approach to implementing efficient multithreading languages. In PLDI’ 97. ACM, 1997.Google Scholar