default_top_notch
default_setNet1_2

1조 개 간선그래프 데이 저장 없이 알고리즘계산

기사승인 2021.04.23  15:22:15

공유
default_news_ad1
   
 

KAIST 전산학부 김민수 교수 연구팀이 1조 개 간선의 초대규모 그래프에 대해 데이터 저장 없이 알고리즘을 PC 한 대로 계산할 수 있는 신개념 기술을 세계 최초로 개발했다.

오늘날 웹, SNS, 인공지능, 블록체인 등의 광범위한 분야들에서 그래프 타입의 데이터에 대한 다양한 알고리즘들의 연구가 매우 중요하다.

그러나 그래프 데이터의 복잡성으로 인해 그 크기가 커질 때 막대한 규모의 컴퓨터 클러스터가 있어야만 알고리즘 계산이 가능하다는 문제가 있다.

김 교수 연구팀은 이를 근본적으로 해결하는 T-GPS(Trillion-scale Graph Processing Simulation)라는 기술을 개발했다.

이 T-GPS 기술은 그래프 데이터를 실제로 디스크에 저장하지 않고도 마치 그래프 데이터가 저장돼 있는 것처럼 알고리즘을 계산할 수 있고, 계산 결과도 실제 저장된 그래프에 대한 알고리즘 계산과 완전히 동일하다는 장점이 있다.

지금까지는 그래프 알고리즘을 개발하기 위해 먼저 합성 그래프를 생성 및 저장한 후, 이를 다시 그래프 처리 엔진에서 메모리로 적재해 알고리즘을 계산하는 2단계 방법을 사용했다.

그래프 데이터는 그 복잡성으로 인해 전체를 메모리로 적재하는 것이 요구되며, 그래프의 규모가 커지면 대규모 컴퓨터 클러스터 장비가 있어야만 알고리즘을 개발하고 실행할 수 있다는 커다란 단점이 있었다.

김 교수팀은 합성 그래프와 그래프 처리 엔진 분야에서 국제 최고 권위의 학술대회에 매년 논문을 발표하는 등 세계 최고의 기술력을 보유하고 있으며, 그 기술들을 바탕으로 기존 2단계 방법의 문제를 해결했다.

그래프 데이터상에서 그래프 알고리즘이 계산을 위해 접근하는 부분을 짧은 순간 동안 실시간으로 생성해, 마치 그래프 데이터가 존재하는 것처럼 알고리즘을 계산하는 것이다.

이때 그래프 데이터를 아무렇게 실시간 생성하는 것이 아니라 합성 그래프 모델에 따라 생성하고 저장한 것과 동일하도록 실시간 생성하는 것이 핵심 기술 중 하나다.

또한, 그래프 처리 엔진이 실시간으로 생성되는 그래프를 실제 그래프처럼 인식하고 알고리즘을 완전히 동일하게 계산하도록 엔진을 수정한 것이 또 다른 핵심 기술이다.

김민수 교수 연구팀은 T-GPS 기술을 종래의 2단계 방법과 성능을 비교한 결과, 종래의 2단계 방법이 11대의 컴퓨터로 구성된 클러스터에서 10억 개 간선 규모의 그래프를 계산할 수 있었던 반면, T-GPS 기술은 1대의 컴퓨터에서 1조 개 간선 규모의 그래프를 계산할 수 있어 컴퓨터 자원 대비 10,000배 더 큰 규모의 데이터를 처리를 할 수 있음을 확인했다.

또한, 알고리즘 계산 시간도 최대 43배 더 빠름을 확인했다.

김민수 교수는 "오늘날 거의 모든 IT 분야에서 그래프 데이터를 활용하고 있는바, 연구팀이 개발한 새로운 기술은 그래프 알고리즘의 개발 규모와 효율을 획기적으로 높일 수 있어 산업적 측면에서 파급 효과가 매우 클 것으로 기대한다ˮ 라고 말했다.

이번 연구에는 김 교수의 제자이자 캐나다 워털루 대학에 박사후 연구원으로 재직 중인 박힘찬 박사가 제1 저자로, 김 교수가 교신저자로 참여했으며 지난 22일 그리스 차니아에서 온라인으로 열린 데이터베이스 분야 최고 국제학술대회 중 하나인 IEEE ICDE에서 발표됐다. (논문명 : Trillion-scale Graph Processing Simulation based on Top-Down Graph Upscaling).

 

김해승 기자 ok67336@hanmail.net

<저작권자 © 충청포스트 무단전재 및 재배포금지>
default_news_ad3
default_setImage2

최신기사

default_news_ad4
default_side_ad1

인기기사

default_side_ad2

포토

1 2 3
set_P1
default_side_ad3

섹션별 인기기사 및 최근기사

default_setNet2
default_bottom
#top
default_bottom_notch