Skip to main content
QUICK REVIEW

[논문 리뷰] In-Place Parallel Super Scalar Samplesort (IPSSSSo)

Bertram, Nico, Ellert, Jonas|arXiv (Cornell University)|2017. 01. 01.
Parallel Computing and Optimization Techniques참고 문헌 5인용 수 7
한 줄 요약

이 논문은 캐시 효율성과 지시 수준 병렬성의 특성을 가진 슈퍼 스칼라 샘플소트의 특징을 유지하면서도, 메모리에 직접 실행되며 중복 키에 대해 강건한 고성능의 인-place 병렬 정렬 알고리즘인 IPS4o를 소개한다. 블록 기반 순열과 스택 없는 분포 방식을 통해 재귀를 제거함으로써, IPS4o는 고확률로 O(n log n)의 작업량을 달성하며, 다중 코어 시스템에서 가장 유사한 인-place 경쟁자보다 최대 3배 빠르고, 순차적으로는 블록 퀵소트보다 최대 1.5배 빠르다.

ABSTRACT

Suffix sorting is arguably the most fundamental building block in string algorithmics, like regular sorting in the broader field of algorithms. It is thus not surprising that the literature is full of algorithms for suffix sorting, in particular focusing on their practicality. However, the advances on practical suffix sorting stalled with the emergence of the DivSufSort algorithm more than 10 years ago, which, up to date, has remained the fastest suffix sorter. This article shows how properties of Lyndon words can be exploited algorithmically to accelerate suffix sorting again. Our new algorithm is 6-19% faster than DivSufSort on real-world texts, and up to three times as fast on artificial repetitive texts. It can also be parallelized, where similar speedups can be observed. Thus, we make the first advances in practical suffix sorting after more than a decade of standstill.

연구 동기 및 목표

  • 현대 하드웨어 환경에서 전통적인 퀵소트 변종의 한계를 해결하기 위해, 비교 기반 정렬 알고리즘을 인-place이면서도 고도로 병렬화 가능한 방식으로 개발하는 것.
  • 추가 메모리 할당이 필요 없이도 다중 코어 아키텍처와 캐시 友好的한 메모리 액세스 패턴을 유지하면서 높은 성능을 달성하는 것.
  • 기존의 인-place 정렬 알고리즘을 개선하여 메모리 오버헤드를 줄이고, 분기 잘못 예측을 방지하며, 중복 키나 거의 정렬된 데이터를 포함한 다양한 입력 분포에서 강건한 성능을 보장하는 것.
  • 다양한 데이터 유형과 하드웨어 플랫폼에서 잘 작동하는 실용적이고 이식 가능하며 효율적인 표준 라이브러리 퀵소트 대체 방안을 제공하는 것.

제안 방법

  • 동적 메모리 할당 없이도 인-place 실행이 가능하도록 블록 기반 분포 방식을 도입하여 슈퍼 스칼라 샘플소트(s3-sort)를 변형한다.
  • 크기 조절된 블록 순열을 사용하여 데이터를 직접 입력 블록 간에 이동시켜 캐시 미스를 줄이고 데이터 국소성을 향상시킨다.
  • 스레드 간 경쟁을 최소화하고 다중 코어 환경에서 확장 가능한 실행을 가능하게 하기 위해 원자적 fetch-and-add 연산을 사용해 블록 순열을 병렬화한다.
  • 부분적으로 채워진 버퍼 블록과 빈 메모리 영역을 처리하기 위해 청소 단계를 도입하여 분포 후 정확성을 보장한다.
  • 스택 없는 분포와 블록 재정렬을 통해 재귀 스택을 제거하여 O(1)의 추가 공간만을 사용하는 엄격한 인-place 실행을 가능하게 한다.
  • 분포 단계에서 중복 요소를 효율적으로 탐지하고 처리함으로써 반복 키에 대한 최적화를 적용하여 비균일한 입력에서의 성능을 향상시킨다.

실험 결과

연구 질문

  • RQ1비교 기반 정렬 알고리즘이 캐시 효율성과 분기 예측 안정성을 유지하면서도, 동적 할당 없이도 인-place 실행과 고도의 병렬 확장성을 동시에 달성할 수 있는가?
  • RQ2샘플소트와 같은 분포 기반 정렬 알고리즘을 동적 할당이나 복잡한 메모리 관리에 의존하지 않고 어떻게 인-place로 만들 수 있는가?
  • RQ3스레드 간 경쟁과 균형 잡힌 로드를 최소화하면서도, 인-place 환경에서 블록 순열을 효율적으로 병렬화할 수 있는 기법은 무엇인가?
  • RQ4다양한 입력 분포와 하드웨어 플랫폼에서 인-place 병렬 정렬 알고리즘의 성능이 비인-place 및 순차적 대안과 비교해 어떻게 되는가?
  • RQ5인-place 정렬 알고리즘이 비인-place 대비 메모리 액세스 오버헤드(예: 캐시 미스, 왈드-알로케이트 미스)를 얼마나 줄일 수 있는가?

주요 결과

  • IPS4o는 다중 코어 시스템에서 가장 유사한 인-place 경쟁자보다 최대 3배 빠르며, 강력한 병렬 확장성을 입증한다.
  • 32개 코어에서 IPS4o는 순차적 버전(IS4o) 대비 28.71배의 스피드업을 달성했으며, 가장 빠른 비인-place 경쟁자(PBBS)보다 1.97배 빠르게 작동한다.
  • 100바이트 객체 2^29개에 대해 IPS4o는 인-place 경쟁자 대비 2.67배 빠르고, 비인-place 대비 1.33배 더 빠르게 동작한다 (Intel2S 기준).
  • IPS4o는 다중 소켓 시스템에서도 잘 확장되지만, 16코어를 초과하면 NUMA 영향과 느린 메모리 대역폭으로 인해 성능 향상 폭이 줄어든다.
  • 순차 모드에서 블록 퀵소트보다 최대 1.5배 빠르며, 특히 100바이트 객체와 같은 큰 데이터 유형에서 두 번의 요소 이동이 발생하더라도 성능이 뛰어나다.
  • 할당 오버헤드, 연관성 미스, 왈드-알로케이트 미스를 줄여, 일부 경우에서는 비인-place 알고리즘보다도 성능상의 이점을 제공한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.