Memory Allocation Scheme for Reducing False Sharing on Multiprocessor Systems

다중처리기 시스템에서 거짓 공유 완화를 위한 메모리 할당 기법

  • Published : 2000.04.15

Abstract

In shared memory multiprocessor systems, false sharing occurs when several independent data objects, not shared but accessed by different processors, are allocated to the same coherency unit of memory. False sharing is one of the major factors that may degrade the performance of memory coherency protocols. This paper presents a new shared memory allocation scheme to reduce false sharing of parallel applications where master processor controls allocation of all the shared objects. Our scheme allocates the objects to temporary address space for the moment, and actually places each object in the address space of processor that first accesses the object later. Its goal is to allocate independent objects that may have different access patterns to different pages. We use execution-driven simulation of real parallel applications to evaluate the effectiveness of our scheme. Experimental results show that by using our scheme a considerable amount of false sharing faults can be reduced with low overhead.

공유 메모리 다중처리기 시스템에서 거짓 공유는 서로 다른 처리기에 의해 참조되는 데이타객체들이 동일한 일관성 유지 블록에 공존하기 때문에 발생하는 현상으로 메모리 일관성 유지비용을 증가시키는 주요 원인이다. 본 논문에서는 주 처리기가 공유 데이타 객체를 총괄하여 할당하는 병렬 응용들을 대상으로 거짓 공유를 감소시켜 주는 새로운 메모리 할당 기법을 제시한다. 제시한 기법에서는 일단 공유객체를 임시 주소공간에 할당한 다음, 나중에 각 객체를 처음으로 참조한 처리기의 주소공간으로 정식 배치한다. 이렇게 함으로써 각 객체를 요청한 처리기별로 별도의 페이지에 각 객체가 할당되며, 서로 다른 처리기에서 요구한 데이타 객체들이 동일 공유 페이지에 섞이지 않게 된다. 본 기법의 효용성을 검증하기 위해 실제 병렬 응용을 사용하여 실행-기반 시뮬레이션을 수행하였다. 실험 결과 제시한 기법은 적은 오버헤드로 기존의 기법들에 비해 거짓 공유 현상을 적게 유발한다는 것을 확인하였다

Keywords

References

  1. V. Khera, R. P. LaRowe Jr., and C. S. Ellis, 'An Architecture-Independent Analysis of False Sharing,' Technical report, CS-1993-13, Duke University, Dept. of Computer Science, October 1993
  2. E. P. Markatos and C. E. Chronaki, 'Trace-Driven Simulation of Data-Alignment and other Factors affecting Update and Invalidation Based Coherent Memory,' Proceedings of Int'l Workshop on Modeling, Analysis and Simulation of Computer and Telecommunications Systems(MASCOTS '94), pp. 44-52, January 1994 https://doi.org/10.1109/MASCOT.1994.284449
  3. W. J. Bolosky and M. L. Scott, 'False Sharing and its Effect on Shared Memory Performance,' Proceedings of the USENIX Symposium on Experience with Distributed and Multiprocessor Systems, pp. 57-71, 1993
  4. J. W. Lee and Y. Cho, 'An Effective Shared Memory Allocator for Reducing False Sharing in NUMA Multiprocessors,' Proceedings of 1996 IEEE 2nd Int'l Conf. on Algorithms & Architectures for Parallel Processing(ICA3PP '96), pp. 373-382, June 1996 https://doi.org/10.1109/ICAPP.1996.562898
  5. J. Torrellas, M. S. Lan, and J. L. Hennessy, 'Shared Data Placement Optimizations to Reduce Multiprocessor Cache Miss Rates,' Proceedings of the 1990 International Conference on Parallel Processing, Vol. II(Software), pp. 266-270, August 1990
  6. S. J. Eggers and T. E. Jeremiassen, 'Eliminating False Sharing,' Proceedings of the 1991 International Conference on Parallel Processing, Vol. I(Architecture), pp. 377-381, August 1991
  7. T. E. Jeremiassen and S. J. Eggers, 'Reducing False Sharing on Shared Multiprocessors through Compile Time Data Transformations,' Fifth ACM SIGPLAN Symposium Principles and Practice of Parallel Programming, pp. 179-188, 1995 https://doi.org/10.1145/209936.209955
  8. 이종우 등, '분산 공유 메모리 시스템에서 동적 공유 메모리 할당 기법이 거짓 공유에 미치는 영향', 정보과학회 논문지, 24(12):1257-1269, 1997년 12월
  9. J. P. Singh, W. Weber, and A. Gupta, 'SPLASH: Stanford Parallel Applications for Shared- Memory,' ACM SICARCH Computer Architecture News, vol. 20, no. 1, pp. 5-44, March 1992 https://doi.org/10.1145/130823.130824
  10. S. C. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta, 'The SPLASH-2 Programs: Characterization and Methodological Considerations,' Proceedings of the 22nd Annul Int'l Symposium on Computer Architecture, pp. 24-36, June 1995 https://doi.org/10.1145/223982.223990
  11. J. E. Veenstra and R. J. Fowler, 'MINT: A Front End for Efficient Simulation of Shared- Memory Multiprocessors,' Proc. of the 2nd Int'l Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems(MASCOTS '94), pp. 201-207, Jan.-Feb. 1994 https://doi.org/10.1109/MASCOT.1994.284422
  12. J. E. Veenstra and R. J. Fowler, 'Source code of shared memory allocator in Mint,' University of Rochester
  13. J. E. Veenstra, 'MINT Tutirial and User Manual,' Technical report, TR452, Computer Science Department, Univ. of Rochester, July 1993
  14. K. Li and P. Hudak, 'Memory Coherence in Shared Virtual Memory Systems,' ACM Transactions on Computer Systems, vol. 7, pp. 321-359, Nov. 1989 https://doi.org/10.1145/75104.75105
  15. 한부형 등, '분산 공유 메모리 시스템에서 거짓 공유 제거 및 통신량 감소 기법', 정보과학회 논문지, 25(10):1100-1108, 1998년 10월
  16. Open Software Foundation, Design of the OSF/1 Operating System, Release 1.2., Prentice-Hall, 1993