• DocumentCode
    2441759
  • Title

    Adaptive sampling-based profiling techniques for optimizing the distributed JVM runtime

  • Author

    Lam, King Tin ; Luo, Yang ; Wang, Cho-Li

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Hong Kong, Hong Kong, China
  • fYear
    2010
  • fDate
    19-23 April 2010
  • Firstpage
    1
  • Lastpage
    11
  • Abstract
    Extending the standard Java virtual machine (JVM) for cluster-awareness is a transparent approach to scaling out multithreaded Java applications. While this clustering solution is gaining momentum in recent years, efficient runtime support for fine-grained object sharing over the distributed JVM remains a challenge. The system efficiency is strongly connected to the global object sharing profile that determines the overall communication cost. Once the sharing or correlation between threads is known, access locality can be optimized by collocating highly correlated threads via dynamic thread migrations. Although correlation tracking techniques have been studied in some page-based software DSM systems, they would entail prohibitively high overheads and low accuracy when ported to fine-grained object-based systems. In this paper, we propose a lightweight sampling-based profiling technique for tracking inter-thread sharing. To preserve locality across migrations, we also propose a stack sampling mechanism for profiling the set of objects which are tightly coupled with a migrant thread. Sampling rates in both techniques can vary adaptively to strike a balance between preciseness and overhead. Such adaptive techniques are particularly useful for applications whose sharing patterns could change dynamically. The profiling results can be exploited for effective thread-to-core placement and dynamic load balancing in a distributed object sharing environment. We present the design and preliminary performance result of our distributed JVM with the profiling implemented. Experimental results show that the profiling is able to obtain over 95% accurate global sharing profiles at a cost of only a few percents of execution time increase for fine- to medium-grained applications.
  • Keywords
    Java; distributed programming; distributed shared memory systems; multi-threading; object-oriented programming; sampling methods; virtual machines; Java virtual machine; access locality; adaptive techniques; cluster-awareness; clustering solution; communication cost; correlation tracking; correlation tracking techniques; distributed JVM runtime; distributed object sharing environment; distributed shared memory systems; dynamic load balancing; dynamic thread migrations; execution time; fine-grained object sharing; fine-to medium-grained applications; global object sharing profile; inter-thread sharing; lightweight sampling-based profiling technique; multithreaded Java applications; page-based software DSM systems; pattern sharing; sampling rates; stack sampling mechanism; system efficiency; thread migration; thread-to-core placement; transparent approach; Application software; Costs; Dynamic programming; Java; Load management; Runtime; Sampling methods; Software systems; Virtual machining; Yarn; access locality; correlation tracking; distributed Java virtual machine; distributed shared memory systems; dynamic load balancing; object sharing; profiling; sampling; thread affinity; thread migration; thread stack;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel & Distributed Processing (IPDPS), 2010 IEEE International Symposium on
  • Conference_Location
    Atlanta, GA
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-4244-6442-5
  • Type

    conf

  • DOI
    10.1109/IPDPS.2010.5470461
  • Filename
    5470461