RISS 학술연구정보서비스

검색
다국어 입력

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

변환된 중국어를 복사하여 사용하시면 됩니다.

예시)
  • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
  • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
닫기
    인기검색어 순위 펼치기

    RISS 인기검색어

      KCI등재

      멀티코어 CPU를 위한 최신 해싱 방법들의 성능분석 = Performance Analysis of Modern Hashing Techniques for Multi-core CPUs

      한글로보기

      https://www.riss.kr/link?id=A99643154

      • 0

        상세조회
      • 0

        다운로드
      서지정보 열기
      • 내보내기
      • 내책장담기
      • 공유하기
      • 오류접수

      부가정보

      국문 초록 (Abstract)

      해시테이블은 키 값으로 연관된 메모리를 매핑하는 방식으로 구현하는 기본적인 데이터 구조이다. O(1)의 매우 빠른 매핑작업으로 인해, 데이터베이스, 바이오인포매틱스, 그리고 분산 컴퓨...

      해시테이블은 키 값으로 연관된 메모리를 매핑하는 방식으로 구현하는 기본적인 데이터 구조이다. O(1)의 매우 빠른 매핑작업으로 인해, 데이터베이스, 바이오인포매틱스, 그리고 분산 컴퓨팅등 다양한 분야에서 사용되고 있다. 한편, CPU의 마이크로 아키텍쳐 디자인의 패러다임이 빠른 하나의 코어를 사용하는 것에서 여러 개의 느린 다중코어를 사용하는 것으로 변하고 있다. 이러한 최신의 컴퓨터 구조의 성능을 최대한 이용하기 위해서 병렬처리방법은 그 어느 때보다 중요해졌다. 본 논문은 두 가지 잘 알려진 해싱 방법인 선형 해싱과 체인 해싱을 구현하였고 또한 최신 해싱 방법인 쿠쿠 해싱을 구현하여 세 가지 해싱 방법을 인텔 Nehalem 마이크로 아키텍쳐의 32개의 코어를 사용한 환경에서 성능을 분석하였다. 특히 compare-and-swap (CAS) 명령어의 락-프리(lock-free) 데이터 구조와 버킷-레벨(bucket-level) 락 데이터 구조 등의 가장 앞선 기술들을 사용하여 해시 방법들을 구현했다. 본 저자들이 아는 범위에서 본 논문은 위의 세 가지 해싱 방법들을 동일한 구현 프레임워크 하에서 최선의 성능을 발휘하도록 구현하고, 동일한 실험환경에서 성능분석을 한 최초의 논문이다. 223의 데이터(즉, 약 8백만) key-value 쌍을 사용한 실험 결과에서 락 프리 선형 해싱이 삽입 연산에서 가장 좋은 성능을 보였고, 락 프리 체인 해싱이 검색연산에서 가장 좋은 성능을 보였다. 또한, 실험을 통해, 쿠쿠 해싱이 해당 논문 저자들의 주장만큼 효율적인 것은 아니라는 것을 보였다.

      더보기

      다국어 초록 (Multilingual Abstract)

      A hash table is a fundamental data structure implementing an associative memory that maps a key to its associative value. Due to its very fast mapping operation of O(1), it has been widely used in various areas such as databases, bioinformatics, and d...

      A hash table is a fundamental data structure implementing an associative memory that maps a key to its associative value. Due to its very fast mapping operation of O(1), it has been widely used in various areas such as databases, bioinformatics, and distributed computing. Besides, the paradigm of micro-architecture design of CPUs is shifting away from faster uniprocessors toward slower chip multiprocessors. In order to fully exploit the performance of such modern computer architectures, the data structures and algorithms considering parallelism become more important than ever. This paper implements two well-known hashing methods, linear hashing and chained hashing, and also, a modern hashing method, cuckoo hashing, and analyzes their performance under Intel 32-core CPU of Nehalem microarchitecture. We implement each hashing method using state-of-the-art techniques such as lock-free data structures, especially based on compare-and-swap (CAS) operations, and bucket-level data structures. To the best of our knowledge, the work done by this paper is the first work analyzing the performance of three all hashing methods under the same implementation framework. Experimental results using data of 2<SUP>23</SUP> (i.e., about eight millions) key-value pairs shows that lock-free linear hashing is the best for insert operation among three hashing methods, and lock-free chained hashing is the best for lookup operation. Through experiments, we also show that cuckoo hashing is not as efficient as the authors of cuckoo hashing claimed.

      더보기

      목차 (Table of Contents)

      • 요약
      • Abstract
      • 1. 서론
      • 2. 관련 연구
      • 3. 구현방법
      • 요약
      • Abstract
      • 1. 서론
      • 2. 관련 연구
      • 3. 구현방법
      • 4. 성능측정
      • 5. 결론
      • 참고문헌
      더보기

      참고문헌 (Reference)

      1 "Valgrind: an open-source memory debugger for x86-GNU/Linux"

      2 Herlihy, M., "The Art of Multiprocessor Programming" Morgan Kaufmann 2008

      3 Knuth, E., "The Art of Computer Programming Volume 3: Sorting and Searching" Addison-Wesley Professional 1998

      4 Shalev, O., "Split-Ordered Lists, Lock-Free Extensible Hash Tables" 53 (53): 379-405, 2006

      5 Micahel, M., "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms" 267-275, 1996

      6 "PVS Language Reference"

      7 Dietzfelbinger, M., "On risks of using cuckoo hashing with simple universal hash classes" 795-804, 2009

      8 Purcell, C., "Non-blocking Hashtables with Open Addressing" 3724 : 108-121, 2005

      9 Stivala, A., "Lock-free Parallel Dynamic Programming" 70 (70): 839-848, 2010

      10 Gao, H., "Lock- free dynamic hash tables with open addressing" 18 (18): 21-42, 2005

      1 "Valgrind: an open-source memory debugger for x86-GNU/Linux"

      2 Herlihy, M., "The Art of Multiprocessor Programming" Morgan Kaufmann 2008

      3 Knuth, E., "The Art of Computer Programming Volume 3: Sorting and Searching" Addison-Wesley Professional 1998

      4 Shalev, O., "Split-Ordered Lists, Lock-Free Extensible Hash Tables" 53 (53): 379-405, 2006

      5 Micahel, M., "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms" 267-275, 1996

      6 "PVS Language Reference"

      7 Dietzfelbinger, M., "On risks of using cuckoo hashing with simple universal hash classes" 795-804, 2009

      8 Purcell, C., "Non-blocking Hashtables with Open Addressing" 3724 : 108-121, 2005

      9 Stivala, A., "Lock-free Parallel Dynamic Programming" 70 (70): 839-848, 2010

      10 Gao, H., "Lock- free dynamic hash tables with open addressing" 18 (18): 21-42, 2005

      11 Litwin, W., "Linear hashing: a new tool for file and table addressing" 212-233, 1980

      12 IBM, "IBM System/370 Extended Architecture: Principles of Operation"

      13 Stone, S., "High Performance Computer Architecture" Addison-Wesley Professional 1987

      14 Michael, M., "Hazard pointers: Safe memory reclamation for lock-free objects" 15 (15): 2004

      15 Fagin, R., "Extendible Hashing-A Fast Access Method for Dynamic Files" 4 (4): 315-344, 1979

      16 Pagh, R., "Cuckoo hashing" 51 (51): 122-144, 2004

      17 Ferdman, M., "Cuckoo directory: A scalable directory for many-core systems" 169-180, 2011

      18 Michael, M., "CAS-Based Lock-Free Algorithm for Shared Deques" 651-660, 2003

      19 Kutzelnigg, Reinhard, "An Improved Version of Cuckoo Hashing: Average Case Analysis of Construction Cost and Search Operations" 3 (3): 47-60, 2010

      20 Frieze, Alan., "An Analysis of Random-Walk Cuckoo Hashing" 40 (40): 291-308, 2011

      21 Drmota, M., "A precise analysis of Cuckoo hashing" 8 (8): 2012

      22 Kutzelnigg, Reinhard, "A further analysis of Cuckoo Hashing with a Stash and Random Graphs of Excess r" 12 (12): 81-, 2010

      23 Erlingsson, Ú., "A cool and practical alternative to traditional hash tables" 2006

      24 Porat, E., "A Cuckoo Hashing Variant with Improved Memory Utilization and Insertion Time" 347-356, 2012

      더보기

      동일학술지(권/호) 다른 논문

      동일학술지 더보기

      더보기

      분석정보

      View

      상세정보조회

      0

      Usage

      원문다운로드

      0

      대출신청

      0

      복사신청

      0

      EDDS신청

      0

      동일 주제 내 활용도 TOP

      더보기

      주제

      연도별 연구동향

      연도별 활용동향

      연관논문

      연구자 네트워크맵

      공동연구자 (7)

      유사연구자 (20) 활용도상위20명

      인용정보 인용지수 설명보기

      학술지 이력

      학술지 이력
      연월일 이력구분 이력상세 등재구분
      2014-09-01 평가 학술지 통합(기타)
      2013-04-26 학술지명변경 한글명 : 정보과학회논문지 : 데이타베이스</br>외국어명 : Journal of KIISE : Databases KCI등재
      2011-01-01 평가 등재학술지 유지(등재유지) KCI등재
      2009-01-01 평가 등재학술지 유지(등재유지) KCI등재
      2007-01-01 평가 등재학술지 유지(등재유지) KCI등재
      2005-01-01 평가 등재학술지 유지(등재유지) KCI등재
      2002-01-01 평가 등재학술지 선정(등재후보2차) KCI등재
      더보기

      이 자료와 함께 이용한 RISS 자료

      나만을 위한 추천자료

      해외이동버튼