posted on 1982-01-01, 00:00authored byDaniel Spoonhower, Guy E. Blelloch, Robert Harper, Phillip B. Gibbons
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.