• DocumentCode
    2616993
  • Title

    Dynamically instrumenting message-passing programs using virtual clocks

  • Author

    Zhang, Kang ; Sun, Chengzheng ; Li, Kei-Chun

  • Author_Institution
    Dept. of Comput., Macquarie Univ., North Ryde, NSW, Australia
  • fYear
    1998
  • fDate
    28-31 Jul 1998
  • Firstpage
    340
  • Lastpage
    341
  • Abstract
    Analysing and visualising the run time behaviour of a distributed program requires collecting performance data during its execution. This is usually done through program instrumentation that inserts trace recording instructions into the program. The intrusiveness of inserted extra code to the original program may make the existing errors vanish, or can cause new errors to appear. It will not only change the real time execution speed, but also change the probability of making particular non deterministic choices. W. Cai and S.J. Turner (1994) proposed a logical clock approach (LCA) to control the inter process communication. It uses a logical clock in each process to reflect the real time execution of the process when running without monitoring. Not relying on any special hardware, this approach achieves minimum intrusiveness and makes the monitoring effect on the original program completely independent from the amount of time spent on monitoring activities. A main problem with LCA is that in an event of non deterministic communication and when several processes wait on each other´s logical clock to advance, a deadlock may occur. LCA uses a carrier null message algorithm to break the deadlock situation. But sending an extra null message will distort the event timing information. Therefore, LCA is only suitable for debugging rather than for performance tuning. We present a major improvement to LCA, which preserves the timing information without introducing any deadlock. Our improved approach can support both debugging and performance tuning. We call our clocks virtual clocks to avoid confusion
  • Keywords
    concurrency control; message passing; program debugging; program diagnostics; real-time systems; software performance evaluation; carrier null message algorithm; deadlock; debugging; distributed program; event timing information; inter process communication; logical clock approach; message passing programs; non deterministic choices; non deterministic communication; performance tuning; program instrumentation; real time execution; real time execution speed; run time behaviour; trace recording instructions; virtual clocks; Clocks; Communication system control; Data visualization; Debugging; Instruments; Monitoring; Performance analysis; Process control; System recovery; Timing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Distributed Computing, 1998. Proceedings. The Seventh International Symposium on
  • Conference_Location
    Chicago, IL
  • ISSN
    1082-8907
  • Print_ISBN
    0-8186-8579-4
  • Type

    conf

  • DOI
    10.1109/HPDC.1998.710020
  • Filename
    710020