Call-Site Tracing-based Shared Memory Allocator for False Sharing Reduction in DSM Systems

분산 공유 메모리 시스템에서 거짓 공유를 줄이는 호출지 추적 기반 공유 메모리 할당 기법

  • 이종우 (숙명여자대학교 멀티미디어과학과)
  • Published : 2005.08.01

Abstract

False sharing is a result of co-location of unrelated data in the same unit of memory coherency, and is one source of unnecessary overhead being of no help to keep the memory coherency in multiprocessor systems. Moreover. the damage caused by false sharing becomes large in proportion to the granularity of memory coherency. To reduce false sharing in a page-based DSM system, it is necessary to allocate unrelated data objects that have different access patterns into the separate shared pages. In this paper we propose call-site tracing-based shared memory allocator. shortly CSTallocator. CSTallocator expects that the data objects requested from the different call-sites may have different access patterns in the future. So CSTailocator places each data object requested from the different call-sites into the separate shared pages, and consequently data objects that have the same call-site are likely to get together into the same shared pages. We use execution-driven simulation of real parallel applications to evaluate the effectiveness of our CSTallocator. Our observations show that by using CSTallocator a considerable amount of false sharing misses can be additionally reduced in comparison with the existing techniques.

거짓 공유는 공유 메모리 다중 처리기 시스템에서 여러 처리기들이 일관성 유지의 단위 메모리 영역을 공유함으로 인해 발생하는 현상으로써, 메모리 일관성 유지의 정확성에는 아무런 도움을 주지 못하면서 그 비용만 증가시키는 주요 요인이다. 특히 메모리 일관성 유지의 단위가 커질수록 그 피해가 더 커진다고 할 수 있다. 페이지-기반 분산 공유 메모리 시스템에서 거짓 공유를 줄이기 위해서는 공유 페이지에 할당되는 객체들의 특성을 미리 예측하여 참조 패턴이 상이한 객체들이 하나의 공유 페이지에 섞이는 것을 방지하는 것이 필수적이다. 본 논문에서는 병렬 응용 프로그램의 코드 내에서 공유 메모리 할당자를 호출한 위치를 추적하여 서로 다른 호출지에서 요청된 공유 객체가 같은 공유 페이지에 할당되는 것을 방지하는 호출지-추적 기반 거짓 공유 감소 기법(CSTallocator)을 제시한다. CSTallocator는 서로 다른 코드 위치에서 할당 요청된 공유 객체들은 각각 상이한 참조 패턴을 보일 것이라는 가정에 기반하고 있다 이 기법의 효용성을 검증하기 위해 기존 거짓 공유 감소 할당 기법들의 성능과 비교한 결과 기존 방식에 비해 훨씬 더 많은 거짓 공유 폴트를 감소시킨다는 것을 알 수 있었다. 실험은 실제 병렬 응용에 기반한 실행-기반 시뮬레이션 기법을 사용하였다.

Keywords

References

  1. Andrew S. Tanenbaum. Distributed Operating Systems, chapter 6, pages 333-345. PRENTICE HALL,1995
  2. 이종우, 조유근. NUMA 다중 처리기에서 조정 가능한 지연 카운터를 이용한 페이지 복사 기법. 전자공학회논문지, 33(6):23-33, June 1996
  3. Josep Torrellas, Monica S. Lam, and John L. Hennessy. Shared Data Placement Optimizations to Reduce Multiprocessor Cache Miss Rates. In Proceedings of the 1990 International Conference on Parallel Processing, volume II(Software), pages 266-270, August 1990
  4. Susan J. Eggers and Tor E. Jeremiassen. Eliminating False Sharing. In Proceedings of the 1991 International Conference on Parallel Processing, volume I(Architecture), pages 377-381, August 1991
  5. 이종우, 조유근. NUMA 다중 처리기에서 거짓 공유를 줄이는 공유 메모리 할당 기법. 정보처리과학회논문지, 23(5):487-497, May 1996
  6. JongWoo Lee and Yookun Cho. An Effective Shared Memory Allocator for Reducing False Sharing in NUMA Multiprocessors. In Proceedings of 1996 IEEE 2nd International Conference on Algorithms & Architectures for Parallel Processing($JCA^3PP$ '96), pages 373-382, June 1996
  7. Roger L. Adema and Carla Schlatter Ellis. Memory Allocation Constructs to Complement NUMA Memory Management. In Proceedings of the 3rd IEEE Symposium on Parallel and Distributed Processing, December 1991
  8. 이종우, 김문희, 한 장희, 지대구, 윤종완, 김장선, 분산 공유 메모리 시스템에서 동적 공유 메모리 할당 기법이 거짓 공유에 미치는 영향. 정보과학회논문지, 24(12): 1257-1269, December 1997
  9. 한부형, 조성제, 조유근, 분산 공유 메모리 시스템에서 거짓 공유 제거 및 통신량 감소 기법. 정보과학회논문지, 25(10):1100-1108, October 1998
  10. 조성제. 분산 공유 메모리 시스템에서 메모리 참조 패턴에 근거한 거짓 공유 감소 기법. 정보처리논문지, 7(4):1082-1091, April 2000
  11. 한부형, 조성제. 다중처리기 시스템에서 거짓 공유 완화를 위한 메모리 할당 기법. 정보과학회논문지, 27(4): 383-393, April 2000
  12. Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R Wilson. Hoard: A scalable memory allocator for multithreaded applications. In Proceedings of the 9th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 117-128, November 2000
  13. Emery D. Berger. Memory Management for High-Performance Applications. PhD thesis, University of Texas at Austin, August 2002
  14. Maged M. Michael. Scalable Lock-Free Dynamic Memory Allocation. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation(PLDI'04), June 2004
  15. J. E. Veenstra. MINT Tutorial and User Manual. Technical Report TR452, Computer Science Department, University of Rochester, July 1993
  16. J. E.Veenstra and R.J.Fowler. 'MINT : A Front End for Efficient Simulation of Shared-Memory Multiprocessors,' Proc., 2nd Int'l Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems, pp. 201-207, Jan. 1994 https://doi.org/10.1109/MASCOT.1994.284422
  17. J. P. Singh, W. Weber, and A. Gupta. SPLASH: Stanford Parallel Applications for Shared-Memory. ACM SIGARCH Computer Architecture News, 20(1):5-44, March 1992 https://doi.org/10.1145/130823.130824
  18. Steven Cameron Woo, Moriyoshi Ohara, Evan Torrie, Jswinder Pal Singh, and Anoop Gupta. The SPLASH2 Programs: Characterization and Methodological Considerations. In Proceedings of the 22nd Annual International Symposium on Computer Architecture, pages 24-36, June 1995