DOI QR코드

DOI QR Code

HD-Tree: High performance Lock-Free Nearest Neighbor Search KD-Tree

HD-Tree: 고성능 Lock-Free NNS KD-Tree

  • Lee, Sang-gi (Dept. of Digital Entertainment, Korea Polytechnic Univ.) ;
  • Jung, NaiHoon (Dept. of Game & Multimedia Engineering, Korea Polytechnic Univ.)
  • 이상기 (한국산업기술대학교 디지털엔터테인먼트학과) ;
  • 정내훈 (한국산업기술대학교 게임공학부)
  • Received : 2020.09.20
  • Accepted : 2020.10.14
  • Published : 2020.10.20

Abstract

Supporting NNS method in KD-Tree algorithm is essential in multidimensional data applications. In this paper, we propose HD-Tree, a high-performance Lock-Free KD-Tree that supports NNS in situations where reads and writes occurs concurrently. HD-Tree reduced the number of synchronization nodes used in NNS and requires less atomic operations during Lock-Free method execution. Comparing with existing algorithms, in a multi-core system with 8 core 16 thread, HD-Tree's performance has improved up to 95% on NNS and 15% on modifying in oversubscription situation.

KD-Tree에서 NNS의 구현은 다차원 데이터를 다루는 응용 프로그램에서 필수적이다. 본 논문에서는 자료구조의 동시 수정, 검색이 일어나는 멀티스레드 상황에서 NNS를 지원하는 고성능 Lock-Free KD-Tree인 HD-Tree를 제안한다. HD-Tree는 동기화에 사용되는 노드 수를 최소화하고, 사용하는 원자 연산자의 수를 감소시켜 성능을 개선하였다. 실험 결과 HD-Tree는 8코어 16스레드의 멀티코어 시스템에서 기존의 NNS보다 성능이 최대 95% 향상되었고, 삽입/삭제연산은 코어보다 스레드가 많은 상황에서 기존 알고리즘보다 최대 15%향상된 성능을 보여준다.

Keywords

References

  1. B. Chatterjee, I. Walulya, and P. Tsigas. "Concurrent linearizable nearest neighbour search in lockfree-kd-tree". ICDCN '18: Proceedings of the 19th International Conference on Distributed Computing and Networking, 2018.
  2. A. Natarajan, A. Ramachandran and N. Mittal. "FEAST: A Lightweight Lock-free Concurrent Binary Search Tree". ACM Transactions on Parallel Computing. 2020.
  3. H. Wen, J. Izraelevitz, W. Cai, H. A. Beadle and M. L. Scott. "Interval-based memory reclamation". ACM SIGPLAN Notices. 2018.
  4. Steam Hardware&Software Survey: July 2020. https://store.steampowered.com/hwsurvey/cpus/
  5. M. Herlihy and N. Shavit. "The Art of Multiprocessor Programming Revised Reprint". Morgan Kaufmann, 2012.
  6. J. L. Bentley. "Multidimensional binary search trees used for associative searching". CACM, vol. 18, no. 9, pp. 509-517, 1975. https://doi.org/10.1145/361002.361007
  7. M. Herlihy. "Wait-Free Synchronization". ACM Transactions on Programming Languages and Systems (TOPLAS), 13 (1): 124-149, Jan. 1991. https://doi.org/10.1145/114005.102808
  8. D. Dechev, P. Pirkelbauer and B. Stroustrup. "Understanding and Effectively Preventing the ABA Problem in Descriptor-based Lock-free Designs". 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing, 2010.
  9. M. Michael, "Hazard pointers: Safe memory reclamation for lock-free objects", IEEE Transactions on Parallel and Distributed Systems, 15 (6): 491-504. 2004. https://doi.org/10.1109/TPDS.2004.8
  10. F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. "Non-blocking binary search trees". In Proceedings of the 29th ACM Symposium on Principles of Distributed Computing (PODC'10). ACM, New York, NY, 131-140. 2010.
  11. T. Brown, F. Ellen, and E. Ruppert. "A general technique for non-blocking trees". In Proceedings of the 19th ACM Symposium on Principles and Practice of Parallel Programming (PPoPP'14). ACM, New York, NY, 329-342. 2014.