Online Computation of Critical Paths for Multithreaded Languages

  • Yoshihiro Oyama
  • Kenjiro Taura
  • Akinori Yonezawa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1800)


We have developed an instrumentation scheme that enables programs written in multithreaded languages to compute a critical path at run time. Our scheme gives not only the length (execution time) of the critical path but also the lengths and locations of all the subpaths making up the critical path. Although the scheme is like Cilk’s algorithm in that it uses a “longest path” computation, it allows more flexible synchronization. We implemented our scheme on top of the concurrent object-oriented language Schematic and confirmed its effectiveness through experiments on a 64-processor symmetric multiprocessor.


Execution Time Directed Acyclic Graph Critical Path Function Frame Lexical Rule 
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.
    M. Frigo, C. E. Leiserson, and K. H. Randall. The Implementation of the Cilk-5 Multithreaded Language. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, pages 212–223, 1998. See also The Cilk Project Home Page
  2. 2.
    M. T. Heath and J. E. Finger. Visualizing the Performance of Parallel Programs. IEEE Software, 8(5):29–39, 1991.CrossRefGoogle Scholar
  3. 3.
    J. K. Hollingsworth. Critical Path Profiling of Message Passing and Shared-memory Programs. IEEE Transactions on Parallel and Distributed Systems, pages 1029–1040, 1998.Google Scholar
  4. 4.
    U. Hölzle and D. Ungar. A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance. In Proceedings of the Ninth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’ 94), pages 229–243, 1994.Google Scholar
  5. 5.
    J. R. Larus. Whole Program Paths. In Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation (PLDI’ 99), pages 259–269, 1999.Google Scholar
  6. 6.
    C. E. Leiserson, 1999. personal communication.Google Scholar
  7. 7.
    Y. Oyama, K. Taura, T. Endo, and A. Yonezawa. An Implementation and Performance Evaluation of Language with Fine-Grain Thread Creation on Shared Memory Parallel Computer. In Proceedings of 1998 International Conference on Parallel and Distributed Computing and Systems (PDCS’ 98), pages 672–675, 1998.Google Scholar
  8. 8.
    Y. Oyama, K. Taura, and A. Yonezawa. An Efficient Compilation Framework for Languages Based on a Concurrent Process Calculus. In Proceedings of Euro-Par’ 97 Parallel Processing, volume 1300 of LNCS, pages 546–553, 1997.CrossRefGoogle Scholar
  9. 9.
    Y. Oyama, K. Taura, and A. Yonezawa. Executing Parallel Programs with Synchronization Bottlenecks Efficiently. In Proceedings of International Workshop on Parallel and Distributed Computing for Symbolic and Irregular Applications (PDSIA’ 99). World Scientific, 1999.Google Scholar
  10. 10.
    Pallas GmbH. Dimemas.
  11. 11.
    Sun Microsystems. The Java HotSpot™ Performance Engine.Google Scholar
  12. 12.
    K. Taura and A. Yonezawa. Schematic: A Concurrent Object-Oriented Extension to Scheme. In Proceedings of Workshop on Object-Based Parallel and Distributed Computation (OBPDC’ 95), volume 1107 of LNCS, pages 59–82, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Yoshihiro Oyama
    • 1
  • Kenjiro Taura
    • 1
  • Akinori Yonezawa
    • 1
  1. 1.Department of Information Science, Faculty of ScienceUniversity of TokyoTokyo

Personalised recommendations