7
교환연산을 포함한 확장편집거리 병렬계산 175 이 논문은 2012년도 정부(미래창조과학부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업임(No. 2012R1A2A2A01014892) 본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신방송 연구개발 사업의 일환으로 수행하였음(10038768, 유전체분석용 슈퍼컴퓨팅 시스템 개발) 본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신방송 연구개발 사업의 일환으로 수행하였음(10041971, 상황대응형 분산트랜스코딩 기술을 이 용한 저전력 고성능 멀티미디어 콘텐츠관리기술 개발) 이 논문은 인하대학교의 지원에 의하여 연구되었음 논문접수 : 2014221(Received 21 February 2014) 논문수정 : 201459(Revised 9 May 2014) 심사완료 : 2014512(Accepted 12 May 2014) Copyright2014 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작물 의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위 를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지: 시스템 및 이론 제41권 제4(2014.8) †† ††† 비 회 원 학생회원 종신회원 : : : 인하대학교 컴퓨터정보공학과 [email protected] 인하대학교 컴퓨터정보공학과 [email protected] 인하대학교 컴퓨터정보공학과 교수 [email protected] (Corresponding author) 교환연산을 포함한 확장편집거리 병렬계산 (Parallel Computation for Extended Edit Distances Including Swap Operations) 강대웅 김영호 †† 심정섭 ††† (Dae Woong Kang) (Youngho Kim) (Jeong Seop Sim) 근사문자열매칭 문제는 컴퓨터보안, 검색엔진, 생물정보학과 같은 다양한 분야에서 연구되고 있다. 근사문자열매칭에서는 불일치 정도를 판단하기 위해, 편집거리나 확장편집거리와 같은 거리함수를 이용한다. 알파벳 의 문자들로 구성된, 길이가 각각 , 인 두 문자열 , 의 편집거리는 변환하기 위해 필요한 최소 편집연산의 수로 정의된다. 이 때 편집연산은 삽입, 삭제, 교체연산으로 구성된 . , 의 확장편집거리는 로 변환하기 위해 필요한 최소 확장편집연산의 수로 정의된다. 이때, 확장편집연산은 편집연산에 교환연산을 추가한 연산들로 구성된다. , 의 확장편집거리는 동적프로그래 밍 기법을 이용하여 시간과 공간을 이용하여 계산할 수 있다. 본 논문에서는 , 의 확장편집거 리를 최대 개의 쓰레드를 이용하여 시간과 공간을 이용하여 계산하는 병렬알고리즘 을 제시한다. 또한 확장편집거리를 계산하는 순차알고리즘과 병렬알고리즘을 각각 CPUGPU 기반으로 구현하여 두 알고리즘의 수행시간을 비교한다. 실험 결과 두 문자열의 길이가 각각 10,000일 때, 병렬알고 리즘이 순차알고리즘에 비하여 약 16배 빠른 수행시간을 보였다. 키워드: 근사문자열매칭, 확장편집거리, 교환연산, 병렬알고리즘, CUDA Abstract Approximate string matching problems have been studied in such diverse fields as computer security, search engines, and bioinformatics. To measure the amounts of errors between two strings, approximate string matching uses distance functions such as the edit distance and the extended edit distance. Given two strings and over an alphabet , the edit distance between and is the minimum number of edit operations to convert into . Edit operations consist of insertions, deletions and changes. The extended edit distance between and is the minimum number of extended edit operations to convert into . Extended edit operations consist of insertions, deletions, changes, and swaps. The edit distance and the extended edit distance between and can be computed using dynamic programming technique in time and space. In this paper, we present a parallel algorithm of computing the extended edit distance between two strings. Our algorithm computes the extended edit distance between and in time using

교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

교환연산을 포함한 확장편집거리 병렬계산 175

․이 논문은 2012년도 정부(미래창조과학부)의 재원으로 한국연구재단의 지원을

받아 수행된 기 연구사업임(No. 2012R1A2A2A01014892)

․본 연구는 미래창조과학부 정보통신기술진흥센터의 정보통신・방송 연구개발

사업의 일환으로 수행하 음(10038768, 유 체분석용 슈퍼컴퓨 시스템 개발)

․본 연구는 미래창조과학부 정보통신기술진흥센터의 정보통신・방송 연구개발

사업의 일환으로 수행하 음(10041971, 상황 응형 분산트랜스코딩 기술을 이

용한 력 고성능 멀티미디어 콘텐츠 리기술 개발)

․이 논문은 인하 학교의 지원에 의하여 연구되었음

논문 수 : 2014년 2월 21일

(Received 21 February 2014)

논문수정 : 2014년 5월 9일

(Revised 9 May 2014)

심사완료 : 2014년 5월 12일

(Accepted 12 May 2014)

CopyrightⒸ2014 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이 작물

의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때,

사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처를 반드시

명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든 유형의 사용행

를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해야 합니다.

정보과학회논문지: 시스템 이론 제41권 제4호(2014.8)

††

†††

비 회 원

학생회원

종신회원

:

:

:

인하 학교 컴퓨터정보공학과

[email protected]

인하 학교 컴퓨터정보공학과

[email protected]

인하 학교 컴퓨터정보공학과 교수

[email protected]

(Corresponding author임)

교환연산을 포함한 확장편집거리 병렬계산(Parallel Computation for Extended Edit Distances

Including Swap Operations)

강 웅† 김 호

†† 심 정 섭

†††

(Dae Woong Kang) (Youngho Kim) (Jeong Seop Sim)

요 약 근사문자열매칭 문제는 컴퓨터보안, 검색엔진, 생물정보학과 같은 다양한 분야에서 연구되고

있다. 근사문자열매칭에서는 불일치 정도를 단하기 해, 편집거리나 확장편집거리와 같은 거리함수를

이용한다. 알 벳 의 문자들로 구성된, 길이가 각각 , 인 두 문자열 , 의 편집거리는 를 로

변환하기 해 필요한 최소 편집연산의 수로 정의된다. 이 때 편집연산은 삽입, 삭제, 교체연산으로 구성된

다. , 의 확장편집거리는 를 로 변환하기 해 필요한 최소 확장편집연산의 수로 정의된다. 이때,

확장편집연산은 편집연산에 교환연산을 추가한 연산들로 구성된다. , 의 확장편집거리는 동 로그래

기법을 이용하여 시간과 공간을 이용하여 계산할 수 있다. 본 논문에서는 , 의 확장편집거

리를 최 개의 쓰 드를 이용하여 시간과 공간을 이용하여 계산하는 병렬알고리즘

을 제시한다. 한 확장편집거리를 계산하는 순차알고리즘과 병렬알고리즘을 각각 CPU와 GPU 기반으로

구 하여 두 알고리즘의 수행시간을 비교한다. 실험 결과 두 문자열의 길이가 각각 10,000일 때, 병렬알고

리즘이 순차알고리즘에 비하여 약 16배 빠른 수행시간을 보 다.

키워드: 근사문자열매칭, 확장편집거리, 교환연산, 병렬알고리즘, CUDA

Abstract Approximate string matching problems have been studied in such diverse fields as

computer security, search engines, and bioinformatics. To measure the amounts of errors between two

strings, approximate string matching uses distance functions such as the edit distance and the

extended edit distance. Given two strings and over an alphabet , the edit

distance between and is the minimum number of edit operations to convert into . Edit

operations consist of insertions, deletions and changes. The extended edit distance between and

is the minimum number of extended edit operations to convert into . Extended edit operations

consist of insertions, deletions, changes, and swaps. The edit distance and the extended edit distance

between and can be computed using dynamic programming technique in time and space.

In this paper, we present a parallel algorithm of computing the extended edit distance between two

strings. Our algorithm computes the extended edit distance between and in time using

Page 2: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

176 정보과학회논문지 : 시스템 이론 제 41 권 제 4 호(2014.8)

threads where ≤ . We implemented our parallel algorithm using CUDA. The experimental results

show that our algorithm runs about 16 times faster than the sequential algorithm when .

Keywords: approximate string matching, extended edit distance, swap operation, parallel algorithm,

CUDA

(a) Insertion operation (b) Deletion operation

(c) Change operation (d) Swap operation

그림 1 확장편집연산 시

Fig. 1 Examples of the extended edit operations

1. 서 론

문자열의 불일치를 허용하는 근사문자열매칭 문제는

컴퓨터보안, 검색엔진, 생물정보학 등 많은 분야에서 활

발히 연구되고 있다[1-3]. [1]에서는 네트워크에서 들어

오는 패킷에서 일반 데이터와 바이러스를 빠르게 구별

하기 하여 근사문자열매칭 알고리즘을 이용한 침입탐

지시스템(intrusion detection system)을 제안하 다.

[2]에서는 사 과 같은 방 한 텍스트 기반 데이터베이

스에서 오차를 허용하여 패턴을 실시간으로 찾기 해

근사문자열매칭 알고리즘을 이용한 사 검색알고리즘을

제시하 다. [3]에서는 두 문자열이 주어졌을 때 두 문

자열의 부분문자열 사이에서 가장 유사도가 높은 부분

문자열을 찾아내는 지역배치(local alignment) 문제를

해결하는 알고리즘을 제시하 다. 이 알고리즘은 생물정

보학에서 두 유 체 사이의 유사도를 분석할 때 활용될

수 있다.

근사문자열매칭에서는 불일치 정도를 단하기 해

거리함수(distance function)를 이용한다. 표 인 거리

함수로 편집거리(edit distance)와 확장편집거리(extended

edit distance)가 이용된다. 알 벳 의 문자들로 구성

된 길이가 각각 , 인 두 문자열 와 의 편집거리

는 를 로 변환하기 해 필요한 최소 편집연산(edit

operation)의 수로 정의된다. 이때 편집연산은 삽입

(insertion), 삭제(deletion), 교체(change)연산으로 구성

된다. 삽입연산은 문자열의 임의의 치에 한 문자를 삽

입하는 연산이며, 삭제연산은 문자열의 임의의 치에

존재하는 한 문자를 삭제하는 연산이다. 교체연산은 문

자열의 임의의 치에 존재하는 한 문자를 다른 문자로

교체하는 연산이다(그림 1 참조). 두 문자열 와 의

편집거리는 잘 알려진 동 로그래 (dynamic pro-

gramming) 기법으로 시간과 공간을 이용하여

계산할 수 있다[4].

한편, 편집연산에 교환(swap)연산을 추가한 확장편집

연산과 이를 이용한 확장편집거리도 연구되어 왔다[5,6].

이때 교환연산은 그림 1(d)와 같이 상의 두 문자의

치를 변경하는 것이다. 두 문자열의 확장편집거리는

를 로 변환하기 해 필요한 최소 확장편집연산의

수로 정의된다. [5]에서는 확장편집거리 문제가 NP-완

(NP-complete)이며, 제한된 경우에 다항시간(polyno-

mial time)에 해결할 수 있음을 증명하 다. [6]에서는

특정 조건에서 확장편집거리를 동 로그래 기법으

로 시간과 공간을 이용하여 계산할 수 있음을

보 다. (이후 본 논문에서 다루는 확장편집거리 문제는

다항시간에 해결 가능한 제한 인 경우를 말한다.) [7]

에서는 를 와 의 확장편집거리라고 할 때, 압축된

-테이블을 min 시간과 공간을 이용

하여 계산하는 알고리즘을 제시하 다.

최근 GPU의 성능이 향상됨에 따라 순차알고리즘들에

한 병렬화 연구가 활발해지고 있다. 문자열 련 문제

들을 해결하는 알고리즘들 역시 GPU를 활용하여 병렬

화한 연구 결과가 제시되고 있다[8-10]. [8]에서는 Aho-

Corasick 오토마타를 이용한 그래 모델을 GPU를 기반

으로 병렬 으로 생성하여 최장공통비상 문자열(longest

common non-superstring) 문제를 해결하 다. [9]에서

는 4-러시안 방법을 이용하여 편집거리를 병렬 으로

계산하기 해 계산단계를 GPU 기반으로 구 하 다.

블록 크기가 2이고 두 문자열 길이가 각각 10,000일 때

순차알고리즘보다 3배 더 빠른 결과를 얻었다. [10]

에서는 지역배치를 계산하기 하여 Smith-Waterman

병렬알고리즘을 GPU 기반으로 구 하여 두 문자열의

길이가 각각 1,000일 때 이스테이션3에서 구 한

로그램에 비해 수행시간이 50% 더 빠른 결과를 얻었다.

Page 3: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

교환연산을 포함한 확장편집거리 병렬계산 177

본 논문에서는 길이가 각각 ≤인 두 문자

열의 확장편집거리를 최 개의 쓰 드를 이용하여

시간과 공간을 이용하여 계산하는 병

렬알고리즘을 제시한다. 그리고 확장편집거리 문제를 해

결하는 순차알고리즘과 병렬알고리즘을 각각 CPU와

GPU 기반으로 구 하여 두 알고리즘의 수행시간을 비

교한다. 실험 결과 두 문자열의 길이가 각각 1,000일 때,

병렬알고리즘이 순차알고리즘보다 약 12배 더 빠른 수

행시간을 보 으며 두 문자열의 길이가 각각 10,000일

때, 약 16배 빠른 수행시간을 보 다.

본 논문의 구성은 다음과 같다. 2장에서는 본 논문의

련 연구에 해 설명하고, 3장에서는 본 논문에서 제

시하는 확장편집거리 문제를 해결하는 병렬알고리즘을

설명한다. 4장에서는 순차알고리즘과 CUDA로 구 한

병렬알고리즘의 수행시간을 비교한다. 마지막으로 5장에

서 결론과 향후 연구 방향을 제시한다.

2. 련 연구

2.1 편집거리 계산 알고리즘

알 벳 의 문자들로 구성된 길이 인 문자열들의

집합을 으로 나타낸다. 문자열 ∈에 하여

(≤≤)는 의 번째 문자를 나타낸다. 의 부

분문자열(substring) (≤≤≤)

는 로 표기하고, 문자열 의 길이는 로 표

한다. 의 크기는 로 표기한다. 크기가 인 배열

에서 부터 까지 연속된 부분배열(subarray)은

(≤≤)로 표 하고 의 원소들은

<>로 표 하기로 한다. 를 들어

, , 일 때, <>

로 나타낸다. 크기가 ×인 2차원 배열 의 행, 열

의 원소는 (≤ ≤)로 표 한다.

두 문자열의 편집거리 문제는 문자열 ∈ 와

∈ 의 편집거리를 계산하는 문제이다. 와 의

편집거리는 -테이블이라 불리는 × 크

기의 테이블을 이용하여 계산할 수 있다[4]. 먼

, 로 기화한다. 각

≤ ≤ ≤≤는 와 의 편집거리

를 장한다(그림 2 참조).

min

(1)

이때 는 일 때 0, ≠일

때 1이 된다. 각 는 식 (1)을 이용하여 시간에

계산할 수 있다. 따라서 와 의 편집거리인 은

시간과 공간을 이용하여 계산할 수 있다.

그림 2 , 의 -테이블

Fig. 2 The -table of and

2.2 확장편집거리 계산 알고리즘

두 문자열의 확장편집거리 문제는 문자열 ∈와

∈ 의 확장편집거리를 계산하는 문제로서 편집거

리를 계산하는 알고리즘과 유사하게 동 로그래 기

법을 이용하여 계산할 수 있다. [6]에서는 -테이블이

라 불리는 ×크기의 테이블을 이용하여

와 의 확장편집거리를 계산하 다(그림 3 참조).

-테이블 한 먼 , 로 기화한다.

각 ≤≤ ≤≤는 와 의

확장편집거리를 장한다. 각 는 아래의 식 (2)를

통하여 계산할 수 있다.

min

(2)

단,

편집거리를 계산하는 식 (1)과 달리, 식 (2)에 추가된

는 교환연산에 의한 거리를 의미한다. 테이블

그림 3 , 의 -테이블({})과

을 계산할 때의 와

Fig. 3 The -table( { }) of ,

and , when computing

Page 4: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

178 정보과학회논문지 : 시스템 이론 제 41 권 제 4 호(2014.8)

그림 4 , 일 때 과 의 치

Fig. 4 Positions of and when and

을 행 우선으로 계산하는 것을 가정했을 때, [6]에서는

를 시간에 계산하기 하여 교환할 문자의

치정보를 장하는 크기의 배열 와 변수 를

이용한다. 는 의 모든 문자에 해 에서

각 문자가 나타나는 가장 오른쪽 치들을 장하고(나

타나지 않을 경우 0), 는 에서 가 나

타나는 가장 오른쪽 치를 장한다(나타나지 않을 경

우 0). 를 들어, 그림 3의 와 는 을 계

산할 때의 정보를 나타낸다. 와 는 각각 실제 교환

연산이 발생하는 문자에 한 와 상의 치이다.

즉, 그림 4와 같이 는 ≤ ≤

인 가장 오른쪽 치로 배열에서 에 해당하는

셀에 장된 값이고, 는 ≤ ≤

인 가장 오른쪽 치로 에 장된 값이다. 를 들

어 그림 4에서 , 일 때, 은 이

에서 가장 오른쪽에 나타나는 치이므로 4이다.

은 가 에서 가장 오른쪽에 나타나는

치이므로 4이다.

와 의 크기가 다른 이유는 -테이블을 행 우

선으로 계산하기 때문이다. 각 행마다 가 고정되므

로 는 가 마지막으로 나타나는 치를 매 셀의

계산이 끝날 때마다 와 비교하여 갱신한다. 는

한 행의 계산이 완료된 후에 정보를 갱신하게 된다. (만

약 열 우선으로 계산한다면, 의 크기는 1이고,

의 크기는 가 된다. 한 를 각 셀의 계산이 끝날

때 갱신하고 를 각 열의 계산이 끝날 때 갱신하게

된다.) 와 는 와 를 이용하여 시간에

알 수 있으므로 각 도 식 (2)에 의하여 시

간에 계산할 수 있다. 따라서 와 의 확장편집거리인

은 가 상수일 때 시간과 공간을 이용

하여 계산할 수 있다.

3. 확장편집거리 병렬알고리즘과 CUDA 구

3.1 병렬화 략

확장편집거리를 병렬 으로 계산하기 해서는 데이

그림 5 , 일 때 -테이블 병렬 계

산을 한 쓰 드 배치

Fig. 5 Thread allocation for computing the -table in

parallel when ,

터 종속성 문제를 해결해야 한다. 데이터 종속성이란 어

떤 데이터를 계산하기 해서 이 에 계산된 데이터를

참조해야하는 성질을 뜻한다. 식 (2)를 이용하여 를

계산하기 해서는 , , ,

(≤ , ≤ )이 미리 계산되

어야 한다. 즉, 데이터 종속성이 발생하게 되는데 편집

거리를 계산하는 식 (1)에서도 유사한 문제가 발생한다.

[10]에서는 개의 쓰 드를 이용하여 식 (1)을 기반으로

편집거리를 병렬 으로 계산하는 알고리즘을 제시하

다. 이때 데이터 종속성 문제를 해결하기 하여 그림 5

와 같이 테이블에서 이 같은 (오른쪽 에서

왼쪽 아래로 향하는 각선) 셀들을 한 사이클에 동시

에 계산하는 방법을 제시하 다. 을 사이클의 번

호라 할 때, 그림 5에서 각 셀에 있는 번호는 번

째 사이클 마다 할당된 쓰 드 번호를 의미한다. 본 논

문에서도 [10]과 같이, 동일한 각선에 치한 셀들을

한 사이클에 계산하는 방법을 이용하여 확장편집거리를

병렬 으로 계산한다. 이때 동일 각선에 있는 셀들을

병렬 으로 계산하기 하여 각 쓰 드 ≤ 는

와 를 따로 리하고 쓰 드 가 리하는

와 를 각각 와 로 나타내기로 한다.

한편, 사이클 마다 각 셀에 쓰 드를 어떻게 할당하느

냐에 따라 필요한 시간 는 공간이 달라질 수 있다.

[10]의 방법 로 각 사이클마다 그림 5와 같이 쓰 드를

할당한다면, 각 쓰 드는 자신이 계산해야 하는 열을 우

선 으로 계산하여 의 크기를 1로, 의 크기를

로 할당할 수 있다. 하지만 7번째 사이클부터는 각

쓰 드에서 에 장하고 있는 문자 정보가 변경되기

때문에, 최악의 경우 시간이 소비될 수 있다. 이

는 [6]의 알고리즘보다 비효율 이다.

본 논문에서는 각 사이클 마다 각 쓰 드가 -테이

Page 5: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

교환연산을 포함한 확장편집거리 병렬계산 179

그림 6 , 일 때 -테이블 병렬 계산을 한 쓰 드 배치 6번째 사이클에서의 와

Fig. 6 Thread allocation for computing the -table in parallel when and , and and

at the 6th cycle

블에서 일정한 행에 한 확장편집거리를 계산하는 알

고리즘을 제시한다(그림 6 참조). 쓰 드 가 행의

셀들을 계산하도록 배치하면, 각 쓰 드는 [6]의 알고리

즘과 같은 시간복잡도와 공간복잡도로 확장편집거리를

계산할 수 있다. 한 의 크기를 1로 할당할 수 있

으므로 와 의 크기를 모두 로 계산하는 방법

에 비해 실제 메모리 사용량이 으로 어든다.

각 와 는 6번째 사이클에 각 쓰 드가 장하

는 정보를 나타낸다.

3.2 처리 단계

본 논문에서 제시하는 알고리즘은 기존에 제시된 [6]

의 알고리즘과 달리 개의 를 미리 계산해야 한다.

[6]의 알고리즘은 한 로세스가 행 우선으로 테이블

체를 계산하므로 한 행을 계산한 이후 의 정보를 갱

신하면서 테이블을 계산할 수 있었다. 하지만 병렬 알고

리즘은 한 쓰 드가 테이블의 한 행씩 계산하므로 쓰

드마다 필요한 의 정보가 다르다. 따라서 개의

를 미리 계산하는 단계가 없다면 를 구하기 하

여 앞선 문자열 정보를 탐색해야하고 최악의 경우 한

셀의 계산에 시간이 소비될 수 있다. 그러므로

처리 단계에서 개의 를 미리 계산하여 각선에

있는 각 셀을 시간에 계산할 수 있도록 한다.

이때 각 를 계산하는 방법은 병렬계산법과 순차계

산법으로 나뉠 수 있고 그 병렬계산법은 개의 쓰

드를 이용하여 각 를 병렬 으로 계산한다. 각 쓰

드 는 부터 까지 각 문자를 확인하면서 배

열에 문자의 치정보를 장하는 방법으로 계산할 수 있

다. 를 들어 그림 6에서 쓰 드 3은 의

각 문자를 순차 으로 확인하면서 에 치정보를

장한다. 한 쓰 드 4는 의 각 문자를 순

차 으로 확인하면서 에 치정보를 장한다. 쓰

드 은 개 문자를 확인해야 하므로 병렬계산법

은 모든 를 시간을 이용하여 계산할 수 있다.

순차계산법은 를 계산할 때 앞서 계산한 을

이용하여 계산한다. 는 의 정보를 가지게 되므

로 의 정보를 가지는 을 복사한 후

의 치정보를 갱신하는 방법으로 계산할 수 있다. 를

들어 그림 6의 은 의 정보를 모두 복사한 후

의 정보를 에 장하는 것으로 계산될

수 있다. 순차계산법은 부터 까지 총 번의

를 계산해야하기 때문에 시간과 공간을 이용

하여 계산할 수 있다. 즉, 가 상수일 때 순차계산법 역시

처리 단계를 시간을 이용하여 계산할 수 있다.

본 논문에서는 병렬계산법 신 순차계산법을 사용한

다. 두 계산법은 모두 시간을 이용하지만 GPU를

이용한 병렬계산법은 개의 의 크기가 GPU의 공

유메모리(shared memory) 크기보다 커서 근속도가

가장 느린 역메모리(global memory)를 이용해야 하

므로 GPU의 특성을 살리기 어렵다. 한 각 쓰 드

가 를 병렬 으로 계산하려면 문자열 에 동시읽

기(concurrent read)를 해야 하는데, 모든 쓰 드가 한

메모리에 동시 근 할 경우 메모리 락(memory lock)이

발생해서 실제 계산속도가 느려진다. 실제로 에 하

여 길이가 10,000인 문자열을 이용하여 두 계산법을 실

험했을 때 순차계산법은 0.00006 의 수행시간을 보 고

병렬계산법은 0.00429 로 순차계산법이 병렬계산법에

비하여 70배 빠른 수행시간을 보 다. (실험 환경은 4.

실험 결과 분석의 실험환경과 동일)

Page 6: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

180 정보과학회논문지 : 시스템 이론 제 41 권 제 4 호(2014.8)

3.3 계산 단계

계산 단계는 앞서 제시한 략을 이용하여 -테이블

을 계산한다(그림 6 참조). 이 때 최 개의 쓰 드를

이용하여 한 사이클 동안 각선상에 치한 셀을 동시

에 계산함을 앞서 설명하 다. 본 논문에서 제시하는 알

고리즘에서는 사이클 에 따라 계산 과정에서 3

가지 경우가 발생한다.

① ≤≤ : 매 사이클마다 쓰 드를 하나씩

늘려가며 -테이블을 병렬 으로 계산한다.

② ≤≤ : 매 사이클마다 쓰 드의 수를

유지하며 -테이블을 병렬 으로 계산한다.

(경우 ②는 인 경우, 존재하지 않는다.)

③ ≤≤ : 매 사이클마다 쓰

드의 수를 하나씩 이며 -테이블을 병렬 으로

계산한다.

의 세 경우로 보아 알 수 있듯이 제시하는 알고리즘

은 -테이블을 계산하기 해 사이클을 수행

한다. 각 사이클은 식 (2)를 이용하여 상수시간에 계산할

수 있기 때문에 제시하는 병렬알고리즘은 시간

과 공간을 이용하여 수행됨을 알 수 있다.

4. 실험 결과 분석

실험 환경은 다음과 같다. CPU는 Intel Core i7-3820,

RAM은 32GB, GPU는 NVIDIA GTX 660, CUDA SDK

는 5.5 버 , 그리고 OS는 Windows 8(64bit)을 사용하

다. 알 벳은 문알 벳 에 하여 실험하

다. 그림 7은 계산 단계에서 두 문자열의 길이를 같이

100부터 1,000까지 100씩 증가시키면서 병렬알고리즘과

순차알고리즘으로 각각 확장편집거리를 계산하는 시간

을 나타낸다. 그림 8은 1,000부터 10,000까지 1,000씩 증

가시키면서 확장편집거리를 계산하는 시간을 나타낸다.

각 길이마다 100개의 제에 한 평균 수행시간을 측

정하 다. GPU로 구 한 병렬알고리즘의 수행시간은

CUDA의 특성상 메인 메모리(main memory)와 디바이

스 메모리(device memory) 사이의 데이터를 복사하는

cudaMemcpy() 함수의 수행시간을 포함하 다. 한 사

용된 자료구조의 크기가 공유메모리의 크기를 과하여

역메모리만을 이용하여 구 하 다.

실험 결과는 다음과 같다. 그림 7과 8에서 순차알고리

즘의 수행시간은 에 비례하여 증가하는 반면 병

렬알고리즘의 수행시간은 에 비례하여 증가하

다. 두 문자열의 길이가 각각 1,000일 때 순차알고리즘

은 약 0.0233 에 수행되었고 병렬알고리즘은 약 0.0019

에 수행되어 병렬알고리즘이 순차알고리즘에 비하여

약 12배 빠른 수행시간을 보 다. 두 문자열의 길이가

각각 10,000일 때 순차알고리즘은 약 2.905 에 수행되

그림 7 -테이블 계산시간 비교( , 100≤≤1,000)

Fig. 7 Comparison of computing time for -tables

( , 100≤≤1,000)

그림 8 -테이블 계산시간 비교( , 1,000≤≤

10,000)

Fig. 8 Comparison of computing time for -tables

( , 1,000≤≤10,000)

었고 병렬알고리즘은 약 0.183 에 수행되어 병렬알고리

즘이 순차알고리즘에 비하여 약 16배 빠른 수행시간을

보 다.

5. 결 론

본 논문에서는 교환연산을 포함한 확장편집거리를 계

산하는 알고리즘을 병렬화하여 CUDA로 구 하 다. 순

차알고리즘에 비하여 병렬알고리즘은 각 쓰 드마다

와 를 따로 유지해야 하므로 체 인 공간 사

용량은 증가했다. 한 그림 8에서는 병렬알고리즘의 수

행시간이 비교 큰 폭으로 증가했다. 그 이유는 실험에

사용된 CUDA SDK 버 에서 하나의 쓰 드 블록에서

할당할 수 있는 최 쓰 드의 수가 1,024개로 제한되어

있고, 복수의 쓰 드 블록을 할당했을 때 블록 간 동기

화를 지원하지 않기 때문인 것으로 단된다. 문자열의

크기가 충분히 크고 블록 간 동기화가 지원된다면 병렬

알고리즘의 수행시간은 완 히 에 비례하여 증가

할 것으로 단된다.

Page 7: 교환연산을 포함한 확장편집거리 병렬계산kiise.or.kr/e_journal/2014/8/CST/pdf/04.pdf편집거리는 잘 알려진 동적프로그래밍(dynamic pro-gramming) 기법으로

교환연산을 포함한 확장편집거리 병렬계산 181

References

[ 1 ] S. Forrest, A. S. Perelson, L. Allen, and R. Cherukuri,

"Self-nonself discrimination in a computer," Re-

search in Security and Privacy, 1994. Proceedings,

1994 IEEE Computer Society Symposium, pp.202-

212, 1994.

[ 2 ] R. Baeza-Yates, G. Navarro, "Fast approximate

string matching in a dictionary," String Processing

and Information Retrieval: A South American Sym-

posium, 1998. Proceedings, pp.14-22, 1998.

[ 3 ] T. F. Smith, M. S. Waterman, "Identification of

Common Molecular Subsequences," Journal of mole-

cular biology, vol.147, no.1, pp.195-197, 1981.

[ 4 ] V. I. Levenshtein, "Binary codes capable of correc-

ting deletions, insertions, and reversals," Soviet

physics doklady, vol.10, pp.707-710, 1966.

[ 5 ] R. A. Wagner, "On the complexity of the extended

string-to-string correction problem," Proc. of seventh

annual ACM symposium on Theory of computing,

pp.218-223, 1975.

[ 6 ] R. Lowrance, R. A. Wagner, "An extension of the

string-to-string correction problem," Journal of the

ACM, vol.22, no.2, pp.177-183, 1975.

[ 7 ] D. K. Kim, J. S. Lee, K. Park, Y. Cho, "Efficient

algorithms for approximate string matching with

swaps," Journal of complexity, vol.15, no.1, pp.128-

147, 1999.

[ 8 ] H. C. Yoon, J. S. Sim, "Parallel Construction for the

Graph Model of the Longest Common Non-super-

string using CUDA," Journal of the KIISE, vol.39,

no.3, pp.202-208, 2012.

[ 9 ] Y. H. Kim, J. H. Jeong, D. W. Kang, J. S. Sim,

"Parallel Computation For The Edit Distance Based

On The Four-Russians' Algorithm," KIPS Transac-

tions on Computer and Communication Systems,

vol.2, no.2, pp.67-74, 2013.

[10] L. Ligowski, W. Rudnicki, "An efficient implemen-

tation of Smith Waterman algorithm on GPU using

CUDA, for massively parallel scanning of sequence

databases," In Parallel & Distributed Processing,

2009, pp.1-8. 2009.

강 웅

2012년 인하 학교 컴퓨터정보공학부 학

사. 2014년 인하 학교 컴퓨터정보공학

과 석사. 2014년 5월 재 (주) 유엔젤

연구개발본부 재직 . 심분야는 문자

열알고리즘, 병렬알고리즘, 바이오인포매

틱스

김 호

정보과학회논문지 : 시스템 이론

제 41 권 제 2 호 참조

심 정 섭

정보과학회논문지 : 시스템 이론

제 41 권 제 2 호 참조