The Implementation of Real-time Performance Monitor for Multi-thread Application

멀티스레드 어플리케이션을 위한 실시간 성능모니터의 구현

  • 김진혁 (인하대학교 전자공학과) ;
  • 신광식 (한국전자통신연구원 스마트게임연구팀) ;
  • 윤완오 (인하대학교 전자공학과) ;
  • 이창호 (인하대학교 전자공학과) ;
  • 최상방 (인하대학교 전자공학과)
  • Received : 2010.09.16
  • Accepted : 2011.05.12
  • Published : 2011.05.25

Abstract

Multi-core system is becoming more general with development of microprocessors. Due to this change in performance improvement paradigm, switching conventional single thread applications with multi thread applications. Performance monitoring tools are used to optimize application performance because of complexity in development of multi thread applications. Conventional performance monitoring tools are focused on performance itself rather than user friendliness or real-time support. Real-time performance monitor identify the problem while multi-threaded applications should be performed as well as check real-time operating status of the application. So it can be used as an effective tool compared to non-real-time performance monitor that only with simple performance indicators to find the cause of the problem. In this paper, we propose RMPM(Real-time Multi-core Performance Monitor) which is real-time performance monitoring tool for multi-core system. Observation period is optimized by comparing relation between overhead due to performance evaluation period and accuracy. Our performance monitor shows not only amount of CPU usage of whole system, memory usage, network usage but also aspect of overhead distribution per thread of an application.

마이크로프로세서의 발전과 함께 멀티코어 시스템은 점차 보편화 되어가고 있다. 이러한 하드웨어 성능향상 패러다임의 변화로 인해 소프트웨어의 성능향상을 위해서는 기존의 싱글 스레드 어플리케이션들을 멀티 스레드 어플리케이션들로 교체하는 과정이 필수적이다. 멀티 스레드 어플리케이션 개발의 복잡성 때문에, 성능모니터링 도구는 어플리케이션의 성능 최적화를 지원하기에 유용한 도구로 사용된다. 기존의 성능모니터링 도구는 사용의 편의성이나 실시간성의 지원보다는 성능 측정 자체에 초점이 맞춰져 있다. 실시간 성능 모니터는 멀티 스레드 어플리케이션이 수행하는 동안 나타나는 문제점을 파악하는 것 뿐 아니라 실시간으로 어플리케이션의 동작 상태를 개발자가 확인 할 수 있기 때문에 단순한 성능 지표들만으로 문제점의 원인을 찾아내야하는 비 실시간 성능 모니터에 비해 효과적인 도구로 사용될 수 있다. 본 논문에서는 멀티코어 시스템을 위한 실시간 성능모니터링 도구인 RMPM(Real-time Multi-core Performance Monitor)를 제안하고 성능 측정 주기로 인한 오버헤드와 정확성 사이의 관계를 비교하여 최적의 측정 주기를 결정하였다. 제안한 성능모니터는 전체시스템의 CPU 사용량, 메모리 사용량, 네트워크 사용량 뿐아니라 시스템의 코어별, 어플리케이션의 스레드별 부하 분산상태를 나타낼 수 있다.

Keywords

References

  1. D. Callahan, "Paradigm Shift: Design considerations for parallel programming," MSDN Magazine, Microsoft, Oct. 2008.
  2. "Measuring Application Performance on Multi-core Hardware," http://software.intel.com/en-us/articles/measuring-application-performance-on-multi-core-hardware, Feb. 2009.
  3. Training materials, "Performance Analysis Tools and Topics for LC'S IBM ASC Systems-Performance Analysis Tools," Lawrence Livermore National Laboratory, https://computing.llnl.gov/tutorials/performance_tools/
  4. J. Reinders, "Intel Threading Building Blocks," O'Reilly Media, 2007.
  5. Reza Azimi, David K. Tam, Livio Soares, and Michael Stumm, "Enhancing operating system support for multicore processors by using hardware performance monitoring," SIGOPS Oper. Syst. Vol.. 43, No. 2, pp. 56-65, Apr. 2009. https://doi.org/10.1145/1531793.1531803
  6. Brinkley Sprunt, "2002. Pentium 4 Performance-Monitoring Features," IEEE Micro Vol. 22, No. 4, pp. 72-82 Jul. 2002. https://doi.org/10.1109/MM.2002.1028478
  7. M. Prvulovic and J. Torrellas. Reenact, "Using thread-level speculation mechanisms to debug data races in multithreaded codes," In Proc. IEEE/ACM International Symposium on Computer Architecture, pp. 110-121, Jun. 2003.
  8. Lin, K, Liao, S., "Service Monitoring and Management on Multicore Platforms," In Proc. of the IEEE int'l Conf. on E-Business Engineering, Oct. 2006, pp.623-630
  9. G. S. Almasi and A. Gottlieb, "Highly Parallel Computing 2ed," Benjamin-Cummings publishers, 1994.
  10. Moore, S., Cronk, D., London, K. S., and Dongarra, J. "Review of Performance Analysis Tools for MPI Parallel Programs," In Proc. of the 8th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing interface, Sep 2001, pp.241-248
  11. Intel Inc, "Intel VTune Performance Analyzers," http://www.intel.com/software/products/vtune/
  12. Mark Friedman and Odysseas Pentakalos, "Windows 2000 Performance Guide," O'REILLY, 2002.
  13. Kwang Sik Shin, Jin Ha Jung, Jin Young Cheon, and Sang Bang Choi, "Real-time network monitoring scheme based on SNMP for dynamic information," Journal of Network and Computer Applications, vol. 30, issue 1, pp. 331-353, Jan. 2007. https://doi.org/10.1016/j.jnca.2005.07.002
  14. Intel Inc, "Destroy the Castle," http://software.intel.com/en-us/articles/destroy-the-castle-demo/