Skip to main content
QUICK REVIEW

[논문 리뷰] Computing alignment plots efficiently

Peter Krusche, Alexander Tiskin|ArXiv.org|2009. 09. 10.
Algorithms and Data Compression참고 문헌 11인용 수 4
한 줄 요약

이 논문은 편집 거리(edit distance)를 히민 거리(Hamming distance) 대신 사용하여 정렬 플롯을 계산하는 고도로 효율적인 데이터 병렬 알고리즘을 제시한다. 벡터화된 연산과 seaweed 알고리즘을 활용하여 기존 표준 동적 프rogram밍 대비 최대 10.2배의 성능 향상을 달성한다. 이 알고리즘은 γ-넓이의 벡터 연산을 사용하여 두 문자열의 모든 w-윈도우 쌍 간의 편집 거리를 O(mnw/γ) 시간에 계산하며, 생물학적 서열에서의 실험 결과는 뚜렷한 성능 향상을 보이며 강한 병렬 확장성을 입증한다.

ABSTRACT

Dot plots are a standard method for local comparison of biological sequences. In a dot plot, a substring to substring distance is computed for all pairs of fixed-size windows in the input strings. Commonly, the Hamming distance is used since it can be computed in linear time. However, the Hamming distance is a rather crude measure of string similarity, and using an alignment-based edit distance can greatly improve the sensitivity of the dot plot method. In this paper, we show how to compute alignment plots of the latter type efficiently. Given two strings of length m and n and a window size w, this problem consists in computing the edit distance between all pairs of substrings of length w, one from each input string. The problem can be solved by repeated application of the standard dynamic programming algorithm in time O(mnw^2). This paper gives an improved data-parallel algorithm, running in time $O(mnw/γ/p)$ using vector operations that work on $γ$ values in parallel and $p$ processors. We show experimental results from an implementation of this algorithm, which uses Intel's MMX/SSE instructions for vector parallelism and MPI for coarse-grained parallelism.

연구 동기 및 목표

  • 정렬 플롯의 민감도를 높이기 위해 히민 거리 대신 편집 거리를 사용함으로써 생물학적 서열 비교의 정확도를 향상시키기 위해.
  • 입력 크기에 따라 효율적으로 확장 가능한 실용적 고성능 알고리즘을 개발하여 정렬 플롯을 계산하기 위해.
  • 벡터화된 연산과 병렬 처리를 활용하여 반복적인 동적 프로그래밍 대비 런타임을 크게 줄이기 위해.
  • SIMD와 MPI를 사용하여 실제 생물학적 서열에서의 확장성과 성능 향상을 입증하기 위해.

제안 방법

  • 알고리즘은 두 문자열의 모든 w-윈도우 쌍 간의 편집 거리를 계산하기 위해 반국소 서열 정렬(semi-local sequence alignment)을 위한 seaweed 알고리즘을 사용한다.
  • γ-넓이의 값에 대해 벡터화된 연산을 적용하여 병렬로 여러 정렬 점수를 처리함으로써 시간 복잡도를 O(mnw/γ)로 감소시킨다.
  • 간격 페널티를 모델링하기 위해 각 문자 앞에 특수 문자를 삽입함으로써 입력 문자열을 변형하여 표준 LCS 계산이 편집 점수를 산출할 수 있도록 한다.
  • seaweed 알고리즘에 필요한 최고 점수의 부분행렬을 효율적으로 계산하기 위해 분포 행렬을 사용한다.
  • 구현은 C++를 사용하며, 벡터 병렬 처리를 위해 Intel MMX 및 SSE 인트린식을 활용하고, 다수의 프로세서 간의 거시적 병렬 처리를 위해 MPI를 사용한다.
  • 알고리즘은 창 크기 w = 100을 최적화 대상으로 삼으며, 정렬 DAG의 일정한 크기 증가로 인해 입력 문자열을 사전에 w = 200으로 전처리한다.

실험 결과

연구 질문

  • RQ1표준 동적 프로그래밍 알고리즘을 반복 적용하는 것보다 정렬 플롯을 더 효율적으로 계산할 수 있는가?
  • RQ2벡터화된 연산과 병렬 처리는 정렬 플롯을 위한 편집 거리 계산의 런타임을 얼마나 줄일 수 있는가?
  • RQ3실제 생물학적 서열에서 BLCS 및 히우리스틱 DP와 같은 기존 방법과 비교해 seaweed 기반 알고리즘이 실제로 얼마나 성능이 우수한가?
  • RQ4다중 코어 및 분산 시스템에서 대규모 서열 비교에 대해 이 알고리즘의 확장성은 어떠한가?

주요 결과

  • 8비트 벡터 연산을 사용한 Linux 데스크톱 시스템에서 Sea-8 구현은 히우리스틱 DP 방법(Heur) 대비 최대 10.2배의 성능 향상을 달성했다.
  • 길이 200인 서열에 대해 Sea-8는 기존 최고 성능의 방법(BLCS)보다 7배 이상 빠르게 작동했다.
  • 64개 코어를 가진 IBM HPC 클러스터에서 가장 큰 데이터셋에 대해 단일 코어 Heur 방법 대비 20.5배의 성능 향상을 기록했다.
  • MPI를 사용하여 1에서 64개 코어로 확장할 경우 가장 큰 데이터셋에서 최대 14.9배의 성능 향상을 보이며 강력한 확장성을 입증했다.
  • 8비트 벡터 연산(Sea-8)은 16비트 연산(Sea-16) 대비 런타임을 2.6배 줄여 데이터 타입 최적화의 효과를 입증했다.
  • 모든 테스트 데이터셋에서 BLCS 및 Heur를 모두 능가했으며, 특히 더 긴 서열에서 가장 뚜렷한 성능 향상을 보였다.

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

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

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

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