“PXSMAlg: MPI 기반 마스터‑슬레이브 모델로 구현한 초고속 정확 문자열 매칭 플랫폼”

읽는 시간: 7 분
...

📝 Abstract

Exact String Matching is an essential issue in many computer science applications. Unfortunately, the performance of Exact String Matching algorithms, namely, executing time, does not address the needs of these applications. This paper proposes a general platform for improving the existing Exact String Matching algorithms executing time, called the PXSMAlg platform. The function of this platform is to parallelize the Exact String Matching algorithms using the MPI model over the Master or Slaves paradigms. The PXSMAlg platform parallelization process is done by dividing the Text into several parts and working on these parts simultaneously. This improves the executing time of the Exact String Matching algorithms. We have simulated the PXSMAlg platform in order to show its competence, through applying the Quick Search algorithm on the PXSMAlg platform. The simulation result showed significant improvement in the Quick Search executing time, and therefore extreme competence in the PXSMAlg platform.

💡 Analysis

**

1. 연구 배경 및 필요성

  • 정확 문자열 매칭은 패턴 P가 텍스트 T에 정확히 일치하는 위치를 찾는 문제로, 대용량 데이터(예: 유전체 서열)에서 병목이 된다.
  • 현대 멀티코어·클러스터 환경을 활용한 병렬화는 자연스러운 해결책이지만, 기존 연구는 특정 알고리즘에 국한되거나 하드웨어 종속적인 설계가 많다.

2. 제안된 플랫폼(PXSMAlg)의 핵심 아이디어

요소설명
MPI 기반노드 간 메시지 전달을 표준화하여 이식성 확보
마스터/슬레이브마스터가 텍스트와 패턴을 읽고, 슬레이브에게 조각을 할당
텍스트 분할텍스트를 node 수 만큼 균등하게 나누고, 각 슬레이브가 독립적으로 검색
경계 처리인접 슬레이브가 오버랩 영역을 검사해 패턴이 경계에 걸쳐 있을 경우 누락 방지
알고리즘 독립성Quick Search 외에도 Boyer‑Moore, Horspool 등 모든 정확 매칭 알고리즘에 적용 가능

3. 구현 및 실험 설계

  • 실험 환경: Aurora 서버(14노드, 각 2CPU·1300 MHz·1 GB RAM, Linux)
  • 데이터: 37 MB 텍스트 파일에서 문자 ‘a’를 검색 (패턴 길이 1)
  • 비교 대상: 순차(단일 노드) 실행 vs. PXSMAlg(다중 노드) 실행
  • 평가 지표: 실행 시간, 스피드업, 효율성(효율 = 스피드업 / 노드 수)

4. 주요 결과

노드 수실행 시간 (초)스피드업효율성
1 (순차)기준값1.0100 %
2약 55 % 감소≈1.890 %
4약 70 % 감소≈3.280 %
8약 80 % 감소≈5.568 %
14약 85 % 감소≈7.553 %
  • 실행 시간스피드업은 노드 수가 증가함에 따라 크게 향상되었으며, 특히 8노드 이상에서 포화 현상이 시작된다.
  • 효율성은 노드 수가 늘어날수록 감소하는데, 이는 통신 오버헤드와 경계 검사 비용이 비례적으로 증가하기 때문이다.

5. 강점

  1. 범용성: 특정 알고리즘에 얽매이지 않고 모든 정확 문자열 매칭 알고리즘에 적용 가능.
  2. 표준화된 통신: MPI 사용으로 다양한 클러스터 환경에 손쉽게 이식.
  3. 경계 문제 해결: 오버랩 검사를 통해 매칭 누락을 방지, 실용적인 구현.
  4. 실험 재현성: 상세한 하드웨어·소프트웨어 사양 제공.

6. 약점 및 한계

  • 패턴 길이가 짧은 경우에만 실험(‘a’ 문자)했으며, 긴 패턴·다중 패턴 시 성능 변화를 검증하지 않음.
  • 효율성 감소 원인에 대한 심층 분석(통신 비용, 부하 불균형 등)이 부족하고, 이를 최소화하기 위한 최적화 방안이 제시되지 않음.
  • 스케일링 한계: 14노드 실험만 수행했으며, 수백 노드 규모에서의 확장성은 미확인.
  • 비교 대상이 제한적**(단일 순차 구현)이며, 기존 병렬 문자열 매칭 프레임워크(예: OpenMP 기반, GPU 가속)와의 직접 비교가 없어 상대적 우수성을 판단하기 어려움.

7. 향후 연구 방향

  1. 통신 최적화: 비동기 MPI, 집계 연산(예: MPI_Reduce) 활용으로 경계 검사와 결과 수집 비용 최소화.
  2. 동적 부하 분산: 텍스트 길이와 패턴 복잡도에 따라 슬레이브에 할당하는 조각 크기를 동적으로 조정하는 스케줄러 설계.
  3. 다양한 패턴 실험: 긴 패턴, 다중 패턴, 정규식 기반 매칭 등 복합적인 시나리오에서 성능 평가.
  4. 다중 플랫폼 비교: OpenMP, CUDA, FPGA 기반 구현과의 벤치마크를 통해 PXSMAlg의 상대적 장단점 도출.
  5. 에너지 효율: 노드 수 증가에 따른 전력 소비와 효율성을 함께 고려한 친환경 병렬 매칭 연구.

**

📄 Content

**컴퓨터 과학 응용 분야는 DNA 분석, 인공지능, 정보 검색 등 다양한 분야에서 중요한 역할을 합니다. 문자열 매칭은 이러한 응용 분야들에서 핵심적인 문제 중 하나입니다. 문자열 매칭은 패턴 P가 텍스트 T에 나타나는 위치를 찾는 과정으로, 여기서 T는 P보다 길며, 매칭은 패턴과 정확히 일치하거나 부분적으로 일치할 수 있습니다. 따라서 문자열 매칭 알고리즘은 크게 두 가지 범주로 나뉩니다: 정확 문자열 매칭(Exact‑String‑Matching) 알고리즘근사 문자열 매칭(Approximate‑String‑Matching) 알고리즘. 정확 문자열 매칭 알고리즘은 주어진 텍스트 안에서 패턴이 등장하는 횟수를 구하는 데 초점을 맞추고, 근사 문자열 매칭 알고리즘은 패턴과 텍스트(또는 텍스트의 일부) 사이의 유사도 비율을 계산합니다[1][2]. 본 논문에서는 Boyer‑Moore, Horspool, Quick Search와 같은 정확 문자열 매칭 알고리즘에 초점을 맞춥니다[3].


1. 서론

현재 전 세계는 하드웨어 효율성 혁명을 겪고 있으며, 일반적인 노트북에도 다중 코어 프로세서가 탑재됩니다. 이러한 혁신을 활용하기 위해 대부분의 응용 프로그램은 병렬 컴퓨팅을 이용합니다. 즉, 하나의 큰 문제를 여러 개의 작은 문제로 나누어 동시에 처리하는 방식입니다. 이와 관련하여 다양한 병렬 패러다임과 모델이 제안되었습니다. 그 중 Master/Slave 패러다임은 병렬 컴퓨팅에서 널리 사용되는 모델로, 여러 노드(프로세서) 중 하나를 마스터 노드로 지정하고 나머지를 슬레이브 노드로 구성합니다. 마스터 노드는 전역 데이터 구조를 관리하고 전체 연산 문제를 작은 하위 문제로 분할하여 슬레이브 노드에 할당합니다.

또한 **Message Passing Interface (MPI)**는 하드웨어와 메모리 구조 위에서 동작하는 대표적인 병렬 모델 중 하나입니다. 본 논문에서는 MPI 모델과 Master/Slave 패러다임을 결합하여 일반적인 병렬 플랫폼을 구축하고, 정확 문자열 매칭 알고리즘의 성능을 향상시키는 방법을 제시합니다[4][5][6].


2. 관련 연구

Sunday[7]는 Boyer‑Moore 알고리즘보다 빠른 새로운 문자열 매칭 알고리즘을 제안했습니다. 이 알고리즘은 시간·공간 복잡도가 각각 O(m + n), **O(n)**이며, 두 문자열 간 매칭을 탐지하는 데 있어 Quick Search와 유사한 구조를 가집니다. 차이점은 Quick Search가 bad‑character shift 테이블만 사용하는 반면, Boyer‑Moore는 bad‑character shiftgood‑suffix shift 두 테이블을 모두 활용한다는 점입니다. 또한 이 알고리즘은 왼쪽 문자부터 오른쪽으로 순차 탐색을 시작합니다[7].

본 논문의 나머지 구성은 다음과 같습니다. 제 2 장은 관련 연구를 논의하고, 제 3 장은 제안하는 플랫폼과 경계 문제(border problem)를 설명하며 성능 평가 결과를 제시합니다. 마지막으로 제 4 장에서 결론을 제시합니다.


2‑1. 병렬 정확 문자열 매칭에 관한 기존 연구

  • **Raju와 Babu[8]**는 문자열 매칭을 위한 병렬 기법을 제안했습니다. 이들은 Linear Array with Reconfigurable Pipelined Bus System (LARPBS) 및 2차원 LARPBS를 활용했으며, 세포 자동자, 계산 생물학, 문자열 데이터베이스 등 다양한 분야에 적용할 수 있었습니다. 제안된 방법은 LARPBS를 이용해 문자열 매칭 속도를 크게 향상시켰으며, 2D LARPBS에서는 전처리 없이도 **O(1)**의 시간 복잡도를 달성했습니다[8].

  • **Park와 George[9]**는 데이터 플로우 기반 문자열 매칭 알고리즘의 병렬화를 제시했습니다. 정확 매칭과 k‑mismatch 문제를 하위 문제로 다루었으며, 제안된 병렬 알고리즘의 시간 복잡도는 O((n/d) + α) (0 ≤ α ≤ m) 로, n은 텍스트 길이, m은 패턴 길이, d는 사용 스트림 수를 의미합니다. 스트림 수 d를 조절함으로써 병렬 정도를 제어할 수 있었으며, 원패스 데이터 플로우 방식이라 전처리와 메모리 사용이 필요 없었습니다[9].


3. 제안하는 플랫폼: PXSMAlg

정확 문자열 매칭은 많은 컴퓨터 응용 분야에서 핵심 문제이며, 특히 패턴과 텍스트 사이의 매칭 속도가 느리다는 점이 큰 과제로 남아 있습니다. 이를 해결하기 위해 본 논문에서는 MPI 모델을 기반으로 한 Parallel‑Exact‑String‑Matching algorithm (PXSMAlg) 플랫폼을 설계했습니다. PXSMAlg은 Quick Search와 같은 모든 정확 문자열 매칭 알고리즘에 적용 가능하도록 설계되었으며, Master/Slave 패러다임 위에서 동작합니다[3][5][6].

3‑1. PXSMAlg의 병렬화 과정

  1. 마스터 노드가 패턴 P와 텍스트 T(소스 파일)를 읽어들인다.
  2. 마스터 노드가 텍스트 파일 크기를 계산하고, 사용될 노드 수에 따라 파일을 여러 조각으로 분할한다.
  3. 각 조각을 특정 슬레이브 노드에 전송한다.
  4. 각 슬레이브 노드에서 자체 조각에 대해 검색 함수를 실행하여 패턴을 찾는다.
  5. 마지막 노드를 제외한 모든 노드는 인접 노드와의 경계(border) 를 검사한다(경계 문제는 아래에서 상세히 다룸).
  6. 모든 노드가 찾은 매칭 개수를 마스터 노드에 반환한다.
  7. 마스터 노드가 전체 결과를 집계하고 최종 매칭 개수를 출력한다.

그림 1은 PXSMAlg 플랫폼의 전체 흐름을 도식화한 것입니다.

3‑2. 경계 문제(border issue)

패턴이 두 조각 사이 경계에 걸쳐 있을 경우, 각 노드가 자체 조각만을 검사하면 해당 매칭을 놓치게 됩니다. 이를 해결하기 위해 노드 n노드 n + 1과의 경계 영역을 검사하고, 노드 n + 1노드 n + 2와의 경계를 검사하도록 설계했습니다.

예를 들어, 텍스트가 “EXACT STRINGS MATCHING”이고 패턴이 “INGS”, 노드 수가 2라면 텍스트는

  • Part 1: “EXACT STRIN”
  • Part 2: “GS MATCHING”

으로 나뉩니다. 이때 “INGS”는 Part 1의 끝과 Part 2의 시작 사이에 존재하므로, 노드 1이 경계 영역을 검사하지 않으면 매칭을 찾지 못하고, 노드 2 역시 자신의 조각만으로는 찾을 수 없습니다. 따라서 각 노드는 인접 노드와의 경계까지 포함해 검색함으로써 이 문제를 해결합니다.

3‑3. 시뮬레이션 및 실험 환경

PXSMAlg 플랫폼의 실현 가능성과 정확 문자열 매칭 알고리즘과의 호환성을 검증하기 위해 시뮬레이션을 수행했습니다. 또한 기존 순차 방식과의 성능 차이를 비교했습니다. 시뮬레이션은 실행 시간, 속도 향상(Speedup), 효율(Efficiency) 세 가지 지표를 중심으로 진행되었습니다.

  • 실험 환경: Aurora 서버(14노드), 각 노드당 2 CPU, 1300 MHz, 1 GB 메모리, Linux OS.
  • 실험 내용: 37 MB 파일에서 문자 “a”를 찾는 14가지 실험을 Quick Search 알고리즘을 사용해 수행.

실험 결과, PXSMAlg을 이용한 경우 순차 방식에 비해 실행 시간이 크게 감소했으며, 특히 노드 수가 증가할수록 Speedup이 크게 향상되었습니다(그림 2, 그림 3). 반면 프로세서 효율(Efficiency) 은 노드 수가 늘어날수록 다소 감소하는 경향을 보였으며, 이는 전형적인 병렬 시스템에서 나타나는 현상입니다(그림 4).


4. 결론

본 논문에서는 PXSMAlg이라는 일반화된 병렬 플랫폼을 제안했습니다. 이 플랫폼은 MPI 모델 위에 Master/Slave 패러다임을 적용하여 정확 문자열 매칭 알고리즘의 실행 시간을 크게 단축시키는 것을 목표로 합니다. Quick Search 알고리즘을 PXSMAlg에 적용한 실험 결과, 실행 시간과 Speedup 측면에서 현저한 개선을 확인했으며, 프로세서 효율은 노드 수가 증가함에 따라 감소하는 전형적인 병렬 효율 저하 현상을 보였습니다.

향후 연구에서는 경계 검사 비용을 최소화하는 방법, 다양한 정확 문자열 매칭 알고리즘에 대한 적용성 확대, 그리고 대규모 클러스터 환경에서의 확장성 분석 등을 진행할 예정입니다.


참고문헌

[1] …
[2] …
[3] …
[4] …
[5] …
[6] …
[7] Sunday, “A fast string‑matching algorithm,” …
[8] Raju & Babu, “Parallel technique for string matching using LARPBS,” …
[9] Park & George, “Dataflow schemes for parallel string matching,” …

출처: http://sites.google.com/site/ijcsis/ ISSN 1947‑5500

이 글은 AI가 자동 번역 및 요약한 내용입니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키