Skip to main content
QUICK REVIEW

[논문 리뷰] ERA: Efficient Serial and Parallel Suffix Tree Construction for Very Long Strings

Essam Mansour, Amin Allam|arXiv (Cornell University)|2011. 09. 30.
Algorithms and Data Compression참고 문헌 8인용 수 4
한 줄 요약

이 논문은 주로 메모리 용량을 초과하는 매우 긴 문자열을 처리할 때 기존의 접미사 트리 구축 알고리즘의 비효율성을 해결하기 위해, 디스크 기반의 접미사 트리 구축 알고리즘인 ERa를 제안한다. ERa는 수직적 및 수평적 방식으로 문자열 처리를 동적으로 분할하여 입출력(I/O) 횟수를 최소화하고 메모리 사용을 최적화한다. 표준 8코어 데스크톱(16GB RAM) 환경에서 인간 게놈의 접미사 트리를 20분 이내에 구축할 수 있으며, 이는 수천 개의 코어를 필요로 하는 슈퍼컴퓨터를 사용하는 기존 방법을 뛰어넘는 성능을 달성한다.

ABSTRACT

The suffix tree is a data structure for indexing strings. It is used in a variety of applications such as bioinformatics, time series analysis, clustering, text editing and data compression. However, when the string and the resulting suffix tree are too large to fit into the main memory, most existing construction algorithms become very inefficient. This paper presents a disk-based suffix tree construction method, called Elastic Range (ERa), which works efficiently with very long strings that are much larger than the available memory. ERa partitions the tree construction process horizontally and vertically and minimizes I/Os by dynamically adjusting the horizontal partitions independently for each vertical partition, based on the evolving shape of the tree and the available memory. Where appropriate, ERa also groups vertical partitions together to amortize the I/O cost. We developed a serial version; a parallel version for shared-memory and shared-disk multi-core systems; and a parallel version for shared-nothing architectures. ERa indexes the entire human genome in 19 minutes on an ordinary desktop computer. For comparison, the fastest existing method needs 15 minutes using 1024 CPUs on an IBM BlueGene supercomputer.

연구 동기 및 목표

  • 주요 메모리 용량을 초과하는 매우 긴 문자열을 처리할 때 기존의 접미사 트리 구축 알고리즘이 효율적이지 못한 문제를 해결하기 위해.
  • 입출력(I/O) 작업 수를 최소화하고, 진화하는 트리 구조 및 가용 메모리에 따라 동적으로 적응할 수 있는 방법을 설계하기 위해.
  • 일반적인 하드웨어 환경(공유 메모리, 공유 디스크, 공유 없는 아키텍처 포함)에서 효율적인 순차적 및 병렬 접미사 트리 구축을 가능하게 하기 위해.
  • 실제 대규모 데이터셋(예: 인간 게놈, 금융 시계열 데이터 등)에서 높은 성능을 달성하기 위해.

제안 방법

  • ERa는 접미사 트리 구축 과정을 서로 독립적인 하위 트리로 수직적으로 분할하여, 각각이 주로 메모리에 맞을 수 있도록 한다.
  • 각 하위 트리는 입력 문자열에 대한 단일 순차 스캔으로 처리할 수 있는 크기로 추가로 수평적으로 분할된다.
  • 트리의 진화하는 형태와 가용 메모리에 따라 수평 분할 크기를 동적으로 조정하여 자원 활용도를 극대화한다.
  • 수직 분할된 부분들은 여러 하위 트리 간의 입출력 비용을 분산하여 평균화하기 위해 그룹화된다.
  • 이 방법은 순차 실행과 공유 메모리, 공유 디스크, 공유 없는 클러스터 등 다양한 병렬 아키텍처를 지원한다.
  • 현대 디스크에서 랜덤 I/O보다 훨씬 빠른 순차적 I/O 접근 방식을 사용한다.

실험 결과

연구 질문

  • RQ1주요 메모리 용량을 초과하는 매우 긴 문자열의 접미사 트리 구축을 메모리가 부족한 환경에서도 효율적으로 수행할 수 있는가?
  • RQ2디스크 기반 접미사 트리 구축에서 입출력 오버헤드를 최소화하면서도 높은 메모리 활용도를 유지할 수 있는가?
  • RQ3동일한 알고리즘이 데스크톱과 클러스터를 포함한 다양한 아키텍처에서 순차적 및 병렬 실행을 효율적으로 지원할 수 있는가?
  • RQ4기존 방법과 비교해 문자열 길이와 알파벳 크기가 증가할수록 알고리즘의 확장성은 어떻게 변화하는가?
  • RQ5동적 분할과 입출력 분산 최적화를 통해 실제 데이터셋(예: 인간 게놈)에서 성능 향상은 어느 정도 이루어지는가?

주요 결과

  • ERa는 표준 8코어 데스크톱(16GB RAM) 환경에서 인간 게놈의 전체 접미사 트리를 19분 만에 구축하여, 슈퍼컴퓨터가 필요한 기존 방법을 뛰어넘는 성능을 보였다.
  • 노드당 4GB RAM을 가진 16노드 클러스터에서 ERa는 8.3분 만에 구축을 완료하여, 이 작업에 대해 보고된 바 가장 빠른 시간이다.
  • ERa는 기존 순차 알고리즘보다 최소 50% 빠르며, 특히 매우 긴 문자열과 큰 알파벳 집합에서 더 큰 성능 향상을 보였다.
  • 공유 없는 클러스터 환경에서 ERa는 4096MBps 입력 크기에서 WaveFront보다 2.5배 빠른 성능을 보였으며, 성능 저하율이 훨씬 낮았다.
  • 공유 메모리 및 클러스터 환경에서 ERa는 거의 최적의 속도 향상을 달성하여 우수한 로드 밸런싱과 확장성을 보였다.
  • ERa의 입출력 비용은 수직 분할 그룹화와 동적 수평 분할을 통해 분산되어, 기존 방법 대비 디스크 입출력 오버헤드를 크게 감소시켰다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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