×

zbMATH — the first resource for mathematics

Space profiling for parallel functional programs. (English) Zbl 1221.68057
Summary: We present a semantic space profiler for parallel functional programs. Building on previous work in sequential profiling, our tools help programmers to relate runtime resource use back to program source code. Unlike many profiling tools, our profiler is based on a cost semantics. This provides a means to reason about performance without requiring a detailed understanding of the compiler or runtime system. It also provides a specification for language implementers. This is critical in that it enables us to separate cleanly the performance of the application from that of the language implementation. Some aspects of the implementation can have significant effects on performance. Our cost semantics enables programmers to understand the impact of different scheduling policies while hiding many of the details of their implementations. We show applications where the choice of scheduling policy has asymptotic effects on space use. We explain these use patterns through a demonstration of our tools. We also validate our methodology by observing similar performance in our implementation of a parallel extension of Standard ML.
MSC:
68N18 Functional programming and lambda calculus
68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
Software:
JoCaml; ML
PDF BibTeX XML Cite
Full Text: DOI
References:
[1] Runciman, Proceedings of the Glasgow Workshop on Functional Programming pp 236– (1993)
[2] Sansom, Proceedings of the Glasgow Workshop on Functional Programming pp 227– (1992)
[3] DOI: 10.1016/0743-7315(90)90087-6 · doi:10.1016/0743-7315(90)90087-6
[4] DOI: 10.1017/S095679680000188X · Zbl 1067.68532 · doi:10.1017/S095679680000188X
[5] DOI: 10.1145/224164.224210 · doi:10.1145/224164.224210
[6] DOI: 10.1145/301970.301974 · Zbl 1065.68664 · doi:10.1145/301970.301974
[7] DOI: 10.1145/99370.99381 · doi:10.1145/99370.99381
[8] DOI: 10.1006/jpdc.1994.1038 · doi:10.1006/jpdc.1994.1038
[9] DOI: 10.1145/232629.232633 · doi:10.1145/232629.232633
[10] DOI: 10.1038/324446a0 · doi:10.1038/324446a0
[11] DOI: 10.1145/69558.69562 · doi:10.1145/69558.69562
[12] Reppy, Concurrent Programming in ML (1999) · doi:10.1017/CBO9780511574962
[13] Appel, Profiling in the Presence of Optimization and Garbage Collection (1988)
[14] Preparata, Computational Geometry – An Introduction (1988)
[15] DOI: 10.1002/spe.4380190206 · doi:10.1002/spe.4380190206
[16] Peyton, Proceedings of the IARCS Annual Conferance on Foundations of Software Technology and Theoretical Computer Science (2008)
[17] Aditya, Semantics of pH: A Parallel Dialect of Haskell (1995)
[18] Milner, The Definition of Standard ML (Revised) (1997)
[19] Loidl, Proceedings of the Glasgow Workshop on Functional Programming (1996)
[20] DOI: 10.1145/358141.358147 · doi:10.1145/358141.358147
[21] Jay, Proceedings of the International Euro-Par Conferance on Parallel Processing pp 650– (1997) · doi:10.1007/BFb0002796
[22] Hammond, Proceedings of the International Workshop on the Parallel Implementation of Functional Language pp 73– (1992)
[23] Hammond, Proceedings of Conferance on High Performance Functional Computing pp 208– (1995)
[24] DOI: 10.1142/S0129626403001380 · doi:10.1142/S0129626403001380
[25] Gustavsson, Proceedings of Workshop on Higher Order Operational Techniques in Semantics pp 69– (1999)
[26] DOI: 10.1145/316686.316690 · doi:10.1145/316686.316690
[27] Frigo, Proceedings of the Conferance on Programming Language, Design and Implementation pp 212– (1998)
[28] Fluet, Proceedings of the International Conference on Functional Programming pp 241– (2008)
[29] DOI: 10.1145/1292535.1292539 · doi:10.1145/1292535.1292539
[30] Cousot, Proceedings of the Symposium on Principles of Programming Language pp 238– (1977)
[31] Conchon, Proceedings of the International Symposium on Agent Systems and Applications pp 22– (1999)
[32] DOI: 10.1145/381694.378823 · doi:10.1145/381694.378823
[33] DOI: 10.1145/1159876.1159877 · doi:10.1145/1159876.1159877
[34] Charles, Selected Papers of the Workshop on the Implementation of Functional Language pp 20– (1998)
[35] DOI: 10.1145/800020.808261 · doi:10.1145/800020.808261
[36] Chakravarty, Proceeding of the International Conferance on Functional Programming pp 94– (2000)
[37] DOI: 10.1017/S0956796897002967 · Zbl 0933.68033 · doi:10.1017/S0956796897002967
[38] DOI: 10.1145/800223.806778 · doi:10.1145/800223.806778
[39] DOI: 10.1145/182409.156783 · doi:10.1145/182409.156783
[40] DOI: 10.1145/324133.324234 · Zbl 1065.68504 · doi:10.1145/324133.324234
[41] Sansom, Proceedings of the Symposium on Principles of Program. Languange pp 355– (1995)
[42] DOI: 10.1137/S0097539793259471 · Zbl 0907.68097 · doi:10.1137/S0097539793259471
[43] DOI: 10.1017/S0956796800000708 · Zbl 05477250 · doi:10.1017/S0956796800000708
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.