Space profiling for parallel functional programs

  • Authors:
  • Daniel Spoonhower;Guy e. Blelloch;Robert Harper;Phillip b. Gibbons

  • Affiliations:
  • School of computer science, carnegie mellon university, 5000 forbes avenue, pittsburgh, pa 15213, usa (e-mail: spoons@cs.cmu.edu, blelloch@cs.cmu.edu, rwh@cs.cmu.edu);School of computer science, carnegie mellon university, 5000 forbes avenue, pittsburgh, pa 15213, usa (e-mail: spoons@cs.cmu.edu, blelloch@cs.cmu.edu, rwh@cs.cmu.edu);School of computer science, carnegie mellon university, 5000 forbes avenue, pittsburgh, pa 15213, usa (e-mail: spoons@cs.cmu.edu, blelloch@cs.cmu.edu, rwh@cs.cmu.edu);Intel labs pittsburgh, 4720 forbes avenue, suite 410, pittsburgh, pa 15213, usa (e-mail: phillip.b.gibbons@intel.com)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.