Performance Analysis for Identification of (Sub-)Task-Level Parallelism in Java

  • Richard Stahl
  • Robert Paško
  • Luc Rijnders
  • Diederik Verkest
  • Serge Vernalde
  • Rudy Leuwereins
  • Francky Catthoor
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2826)


In the era of future embedded systems the designer is confronted with multiple processors both for performance and energy reasons. Exploiting (sub-)task-level parallelism is crucial when targeting those multi-processor systems, because ILP on itself is not sufficient.

The challenge is to build compiler tools which automatically explore potential (sub-)task parallelism in the programs, and allow designer to optimise it for the underlying architecture. To achieve this goal we are building a transformation framework which employs task-level analysis and code transformations to extract the parallelism from sequential object-oriented programs.

Parallel performance analysis is one of the crucial techniques for estimation of the transformation effects and their optimisation. We have implemented support for performance analysis and profiling of Java programs. The toolkit comprises automated instrumentation, parallel profiling and post-processing analysis. We demonstrate its usability on three realistic applications.


Target Platform Synchronisation Point Virtual Time Transformation Framework Java Compiler 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Girkar, M., Polychronopoulos, C.D.: Automatic Extraction of Functional Parallelism from Ordinary Programs. IEEE Trans. on Parallel and Distributed Systems (1992)Google Scholar
  2. 2.
    Baneerjee, P., et al.: The Paradigm compiler for Distributed-Memory Multicomputers. IEEE Trans. on Computer (1995)Google Scholar
  3. 3.
    Saito, H., et al.: The Design of the PROMIS Compiler. In: Proceedings of the International Conference on Compiler Construction (1999)Google Scholar
  4. 4.
    Huynh, S.: Exploiting Task-level Parallelism Automatically Using pTask, Master Thesis at University of Toronto (1996)Google Scholar
  5. 5.
    Chan, B., Abdelrahman, T.S.: Run-time support for the automatic parallelization of Java programs. In: Proc. of Int. Conf. on Parallel and Distributed Computing and Systems (2001)Google Scholar
  6. 6.
    Weiser, M.: Program slicing. In: Proceedings of 5th International Conference on Software Engineering (1981)Google Scholar
  7. 7.
    Hatcliff, J., et al.: A Formal Study of Slicing for Multi-threaded Programs with JVM Concurrency Primitives. In: Static Analysis Symposium (1999)Google Scholar
  8. 8.
    Liang, S.: The JavaTMNative Interface: Programmer’s Guide and Specification. Addison Wesley Longman Inc., Amsterdam (1999)Google Scholar
  9. 9.
    Vallee-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: Soot - A Java Optimization Framework. In: Proc. of CASCON (1999)Google Scholar
  10. 10.
    Kaffe Virtual Machine,
  11. 11.
    Fenlason, J., Stallman, R.: GNU gprof - The GNU Profiler,
  12. 12.
    Hollingsworth, J.K., Miller, B.P.: Parallel Program Performance Metrics: A Comparison and Validation. Supercomputing, 4–13 (1992)Google Scholar
  13. 13.
    Miller, B.P., Clark, M., Hollingsworth, J.K., Kierstead, S., Lim, S., Torzewski, T.: IPS-2: The 2nd Generation of a Parallel Program Measurement System. IEEE Transactions on Parallel and Distributed Systems 1(2), 206–217 (1990)CrossRefGoogle Scholar
  14. 14.
    Anderson, T.E., Lazowska, E.D.: Quartz: A Tool for Tuning Parallel Program Performance, Performance Evaluation Review. ACM SIGMETRICS 18(1), 115–125 (1990) (special Issue)CrossRefGoogle Scholar
  15. 15.
    Hollingsworth, J.K.: Critical Path Profiling of Message Passing and Shared Memory Programs. IEEE Transactions on Parallel and Distributed Systems 9(10), 1029–1040 (1998)CrossRefGoogle Scholar
  16. 16.
    Shende, S., Malony, A.D., Cuny, J., Lindlan, K., Beckman, P., Karmesin, S.: Portable Profiling and Tracing for Parallel Scientific Applications using C++. In: Proceedings of ACM SIGMETRICS Symposium on Parallel and Distributed Tools (1998)Google Scholar
  17. 17.
  18. 18.
    Borland Optimizeit Suite 5,
  19. 19.
  20. 20.
  21. 21.
    Kazi, I.H., et al.: Javiz: A Client/Server Java Profiling Tool. IBM Systems Journal 39(1) (2000)Google Scholar
  22. 22.
    Sevitsky, G., De Pauw, W., Konuru, R.: An Information Exploration Tool for Performance Analysis of Java Programs. In: TOOLS Europe (2001)Google Scholar
  23. 23.
    Malenfant, J., Jacques, M., Demers, F.N.: A tutorial on behavioral reflection and its implementation. In: Proceedings of the Reflection 1996 Conference, pp. 1–20 (1996)Google Scholar
  24. 24.
  25. 25.
    Walser, P.: IDX 3D engine,
  26. 26.

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Richard Stahl
    • 1
  • Robert Paško
    • 1
  • Luc Rijnders
    • 1
  • Diederik Verkest
    • 1
  • Serge Vernalde
    • 1
  • Rudy Leuwereins
    • 1
  • Francky Catthoor
    • 1
  1. 1.IMEC vzwLeuvenBelgium

Personalised recommendations