Abstract
Execution profiling plays a crucial part in the performanceimproving process for parallel functional programs. This paper presents the design, implementation, and use of a new execution time profiler (GranSinm-SP) for Glasgow Parallel Haskell (GpH). Parallelism is introduced in GpH by using evaluation strategies, which provide a clean way of co-ordinating parallel threads without destroying a program’s original structure. The new profiler attributes the cost of evaluating parallel threads to the strategies that created them. A unique feature of the strategic profiler is that the call-graph of evaluation strategies is maintained, allowing the programmer to discover the sequence of (perhaps nested) strategies that were used to create any given thread. The strategic profiler is demonstrated on several examples, and compared with other profilers.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
N. Charles and C. Runciman. An Interactive Approach to Profiling Parallel Functional Programs. In This Proceedings.
C. Clack, S. Clayman, and D. Parrott. Lexical Profiling: Theory and Practice. Journal of Functional Programming, 5(2):225–277, Apr. 1995.
W. Gropp and E. Lusk. User’s Guide for mpich, a Portable Implementation of MPI. Mathematics and Computer Science Division, Argonne National Laboratory, University of Chicago, July 1998.
J. G. Hall, C. Baker-Finch, P. Trinder, and D. J. King. Towards an Operational Semantics for a Parallel Non-Strict Functional Language. In This Proceedings.
K. Hammond, H.-W. Loidl, and P. Trinder. Parallel Cost Centre Profiling. In Proc. 1997 Glasgow Workshop on Functional Programming, Ullapool, Scotland, Sept. 1997.
J. A. Kohl and G. A. Geist. XPVM 1.0 User’s Guide. Oak Ridge National Laboratory, Nov. 1996.
H.-W. Loidl. GranSim’s User Guide. Department of Computing Science, University of Glasgow, 0.03 edition, July 1996.
H.-W. Loidl. Granularity in Large-Scale Parallel Functional Programming. PhD thesis, Department of Computing Science, University of Glasgow, Mar. 1998.
R. G. Morgan and S. A. Jarvis. Profiling Large-Scale Lazy Functional Programs. Journal of Functional Programming, 8(3), May 1998.
S. L. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In Proc. 23rd ACM Symposium on Principles of Programming Languages (POPL’ 96), pages 295–308, St Petersburg Beach, Florida, Jan. 1996.
S. L. Peyton Jones, C. Hall, K. Hammond, W. Partain, and P. Wadler. The Glasgow Haskell compiler: A technical overview. In Proc. UK Joint Framework for Information Technology, Technical Conference (JFIT’ 93), pages 249–257, Keele, Mar. 1993.
C. Runciman and D. Wakeling. Applications of Functional Programming. UCL Press Ltd, 1995.
P. M. Sansom and S. L. Peyton Jones. Time and Space Profiling for Non-Strict, Higher-Order Functional Languages. In Proc. 22nd. ACM Symposium on Principles of Programming Languages (POPL’ 95), pages 355–366, San Francisco, California, Jan. 1995. ACM SIGPLAN-SIGACT.
P. M. Sansom and S. L. Peyton Jones. Formally-Based Profiling for Higher-Order Functional Languages. ACM Transactions on Programming Languages and Systems, 19(1), Jan. 1997.
P.W. Trinder, K. Hammond, H.-W. Loidl, and S.L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1):23–60, January 1998.
P.W. Trinder, K. Hammond, J.S. Mattson, A.S. Partridge, and S.L. Peyton Jones. GUM: a Portable Parallel Implementation of Haskell. In Proc. 1996 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’ 96), pages 79–88, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
King, D.J., Hall, J., Trinder, P. (1999). A Strategic Profiler for Glasgow Parallel Haskell. In: Hammond, K., Davie, T., Clack, C. (eds) Implementation of Functional Languages. IFL 1998. Lecture Notes in Computer Science, vol 1595. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48515-5_6
Download citation
DOI: https://doi.org/10.1007/3-540-48515-5_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66229-7
Online ISBN: 978-3-540-48515-5
eBook Packages: Springer Book Archive