DOI QR코드

DOI QR Code

NUMA 시스템에 최적화된 병렬 해시 테이블

Concurrent Hash Table Optimized for NUMA System

  • 최재용 (한국산업기술대학교 디지털엔터테인먼트학과) ;
  • 정내훈 (한국산업기술대학교 게임공학과)
  • Choi, JaeYong (Dept. of Digital Entertainment, Korea Polytechnic University) ;
  • Jung, NaiHoon (Dept. of Game & Multimedia Engineering, Korea Polytechnic University)
  • 투고 : 2020.09.20
  • 심사 : 2020.10.16
  • 발행 : 2020.10.20

초록

MMO 게임 서버에서는 성능을 높이기 위해 NUMA(Non-Uniform Memory Access) 구조를 사용해 하드웨어를 구성하는 경우가 많다. 또한 내부 자료구조로 삽입, 삭제와 탐색에 소요되는 시간이 짧은 해시 테이블과 같은 자료구조를 많이 사용한다. 본 논문은 NUMA 구조에 최적화된 해시 테이블을 제안하여, NUMA 시스템을 사용하는 게임 서버의 성능을 더 높일 수 있도록 한다. 제안된 해시 테이블을 4 소켓 NUMA 시스템에서 실험한 결과, 기존의 고성능 해시 테이블에 비해 최대 2배의 성능 향상을 확인할 수 있었다.

In MMO game servers, NUMA (Non-Uniform Memory Access) architecture is generally used to achieve high performance. Furthermore, such servers normally use hash tables as internal data structure which have constant time complexity for insert, delete, and search operations. In this study, we proposed a concurrent hash table optimized for NUMA system to make MMO game servers improve their performance. We tested our hash table on 4 socket NUMA system, and the hash table shows at most 100% speedup over another high-performance hash table.

키워드

참고문헌

  1. Amazon, AWS 에서의 멀티 플레이어 게임 서버 성능 최적화, https://aws.amazon.com/ko/blogs/korea/optimizing-multiplayer-game-server-performance-on-aws
  2. 정내훈, 게임서버프로그래밍 강의노트, 한국산업기술대학교
  3. Boyd-Wickizer, Silas, et al., "Corey: An Operating System for Many Cores.", OSDI. Vol. 8., pp. 43-57, 2008.
  4. Trahay, Francois, et al., "NumaMMA: NUMA memory analyzer.", Proceedings of the 47th International Conference on Parallel Processing., 2018.
  5. Daly, Henry, et al., "NUMASK: high performance scalable skip list for NUMA.", 32nd International Symposium on Distributed Computing (DISC 2018), 2018.
  6. Calciu, Irina, Justin Gottschlich, and Maurice Herlihy, "Using elimination and delegation to implement a scalable NUMA-friendly stack.", 5th {USENIX} Workshop on Hot Topics in Parallelism (HotPar 13), 2013.
  7. Calciu, Irina, et al., "Black-box concurrent data structures for NUMA architectures.", ACM SIGPLAN Notices 52.4 (2017), pp 207-221, 2017. https://doi.org/10.1145/3093336.3037721
  8. Fatourou, Panagiota, Nikolaos D. Kallimanis, and Thomas Ropars, "An Efficient Wait-free Resizable Hash Table.", Proceedings of the 30th on Symposium on Parallelism in Algorithms and Architectures, pp. 111-120, 2018.
  9. Shalev, Ori, and Nir Shavit, "Split-ordered lists: Lock-free extensible hash tables.", Journal of the ACM (JACM) 53.3 (2006), pp. 379-405, 2006. https://doi.org/10.1145/1147954.1147958
  10. M. Herlihy, N. Shavit, "The Art of Multiprocessor Programming", Revised First Edition, pp. 339, Elsevier, 2012.
  11. Intel, Intel Threading Building Blocks, https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks.html
  12. Reinders, James., "Intel threading building blocks: outfitting C++ for multi-core processor parallelism.", O'Reilly Media, Inc., 2007.
  13. Fraser, Keir. "Practical lock-freedom". No. UCAM-CL-TR-579. University of Cambridge, Computer Laboratory, 2004.