Skip to main content
    • Aa
    • Aa

Space profiling for parallel functional programs

  • DOI:
  • Published online: 03 September 2010

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.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

A. W. Appel (1989) Simple generational garbage collection and fast allocation, Softw. Prac. Exp., 19 (2): 171183.

N. Arvind , S. Rishiyur & K. K. Pingali (1989) I-structures: Data structures for parallel computing, ACM Trans. Program. Lang. Syst., 11 (4): 598632.

J. Barnes & P. Hut (1986) A hierarchical O(N log N) force-calculation algorithm, Nature, 324 (4): 446449.

G. E. Blelloch , J. C. Hardwick , J. Sipelstein , M. Zagha & S. Chatterjee (1994) Implementation of a portable nested data-parallel language, J. Parallel Distrib. Comput., 21 (1): 414.

G. E. Blelloch , P. B. Gibbons & Y. Matias (1999) Provably efficient scheduling for languages with fine-grained parallelism, J. ACM, 46 (2): 281321.

G. E. Blelloch & G. W. Sabot (1990) Compiling collection-oriented languages onto massively parallel computers, J. Parallel Distrib. Comput., 8 (2): 119134.

R. D. Blumofe & C. E. Leiserson (1998) Space-efficient scheduling of multithreaded computations, SIAM J. Comput., 27 (1): 202229.

R. D. Blumofe & C. E. Leiserson (1999) Scheduling multithreaded computations by work stealing. J. ACM, 46 (5): 720748.

P. Cheng & G. E. Blelloch (2001) A parallel, real-time garbage collector, Sigplan Not., 36 (5): 125136.

J. Greiner & G. E. Blelloch (1999) A provably time-efficient parallel implementation of full speculation, ACM Trans. Program. Lang. Syst., 21 (2): 240285.

K. Hammond , J. Berthold & R. Loogen (2003) Automatic skeletons in template Haskell, Parallel Process. Lett., 13 (3): 413424.

C. B. Jay , M. Cole , M. Sekanina & P. Steckler (1997) A monadic calculus for parallel costing of a functional language of arrays. In Proceedings of the International Euro-Par Conferance on Parallel Processing. Springer-Verlag, pp. 650661.

H. Lieberman & C. Hewitt (1983) A real-time garbage collector based on the lifetimes of objects, Commun. ACM, 26 (6): 419429.

N. Röjemo & C. Runciman (1996) Lag, drag, void and use–heap profiling and space-efficient compilation revisited, Sigplan Not., 31 (6): 3441.

P. W. Trinder , K. Hammond , H.-W. Loidl & S. L. Peyton Jones (1998) Algorithm + Strategy = Parallelism, J. Funct. Program., 8 (1): 2360.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *