관련기사 등록
검색섹션
검색영역
기사등급
기사형태
검색영역
검색단어 또는
관련기사 검색결과 리스트
관련기사 검색결과 리스트 컨텐츠
검색된 정보가 없습니다.
관련기사 검색결과 리스트
관련기사 검색결과 리스트 컨텐츠
검색된 정보가 없습니다.
게시글 상세보기
정보

2018/01/08 한양뉴스 > 학술 > 이달의연구자

제목

[우수 R&D] 김상욱 교수(소프트웨어학과)

여기서도 개선하고 저기서도 개선하니 빅데이터도 빠르게 분석 되네요

이상호

URL복사/SNS공유

http://www.hanyang.ac.kr/surl/nN6S

내용
 
더 빠르게, 더 정확하게. 컴퓨터 분야에서 신기술이 나올 때마다 쓰이는 단골 문구다. 과거 빌게이츠는 “640KB면 누구에게나 충분하다”고 했다. 1981년 IBM PC를 발매하며 했던 말인데, 당시 시중에 나오던 애플II나 코모도어64 같은 8비트 컴퓨터의 64KB에 비하면 큰 용량이긴 하다. 물론 지금은 유머로 쓰이는 말이다. 최근에는 1KB의 십억배가 넘는 1TB 메모리도 시중에서 판매된다. 그리고 이 안에는 엄청나게 많은 데이터가 담긴다. 자연스레 처리속도의 중요성도 커졌다. 김상욱 교수(컴퓨터소프트웨어학부)는 지도학생들과 함께 수많은 양의 데이터 곧 빅데이터를 위한 정보처리 기술을 연구하고 있다. 최근에는 처리 속도 및 분석의 정확도에 관해 주목할 만한 성과를 보여 국제 학계에서도 주목받았고, 관련 공로를 인정받아 지난 2017년 12월 '국가연구개발 성과평가 유공포상' 수여식에서 대통령 표창을 수상했다.

 
▲ 김상욱 교수(소프트웨어학과)는 빅데이터의 처리와 관련해 여러 연구를 수행중인 학자다. 김 교수를 지난 5일 그의 연구실에서 만났다.

정보 처리에 필요한 연산을 정보에 맞게 적용시키다

 
컴퓨터과학 분야에서, 그래프(graph)는 정보를 표현하는 중요한 자료구조이다. 일반적으로 자료를 보여주는 그래프와는 다르다. 주로 이산 수학 분야에서 쓰이는 꼴로, 이는 노드(node)라 불리는 점과 그 점들을 연결하는 선(edge)이 중요한 형태다. A, B, C, D, E라는 다섯 개의 노드가 있다면, 이들 각각의 관계가 선으로 연결되거나 끊어져 있거나 하는 꼴이다. 또한 이를 수학적으로 표현하기 위해 행렬(matrix)이 활용된다. 이렇게 변환된 정보들은 여러 수학적인 연산을 통해 유의미한 결과를 얻어낼 수 있으며, 이에는 수많은 관련 기술들이 사용된다.
 
김상욱 교수 연구실은 특히 SNS와 블로그 등의 플랫폼 데이터를 처리하기 용이한 방법을 연구해 개선안을 찾았다. 이들의 특징이라면, 행렬로 변환 시 그 밀도가 매우 낮다는 점이다. 구체적으로는 단위마다 특정 구간에만 유효한 정보가 존재한다. 김 교수는 이 과정에서 생기는 병목(bottleneck) 현상을 지적했다. “페이스북을 예로 들면, 수천만 개가 넘는 계정 중 다른 계정과 갖는 관계의 수는 대부분 몇 천 개를 넘지 않습니다. 이조차도 극소수를 제외하곤 수백 개 수준이 대부분이죠.” 유의미한 해석을 위해서는 각 행과 열이 수천만 개가 되는 행렬들끼리 곱해야 하는데, 저 탓에 병목 현상이 발생한다.

병목 현상이 생기는 이유를 알려면 간단한 연산 과정을 알 필요가 있다. 한때는 컴퓨터에서 CPU(중앙 처리 장치)를 위주로 사용했는데, 현재는 대부분의 데이터센터에서 GPU(그래픽 처리 장치)를 함께 사용해 연산 속도를 높였다. GPU가 CPU와 달리 갖는 강점이 병렬연산이다. 명령 한 번에 GPU 속 수천 개의 코어(Core, 연산 기본 단위)가 연산을 처리해 CPU와 비교도 안되게 빠르다. 그런데 한 번의 명령마다 모든 코어가 일을 마칠 때까지 다른 코어들도 대기한다. 기존에 GPU 개발사 등에서 제작한 소프트웨어는 행렬 속 대부분의 값이 0이 아닌 ‘일반적인’ 경우에 최적화 돼있다. 그래서 행렬의 곱연산 시 병목 현상을 피할 수 없었는데, 김 교수 연구팀에서 대기 시간을 크게 줄인 방법을 찾았다. “컴퓨터 처리 속도가 빨라지는 이상으로 처리할 정보도 많아지는데, 주로 쓰일 환경에서 효율적인 방법을 찾았다는 점이 의미 있죠.”
 
▲ 김상욱 교수가 연구한 내용을 적용하면 GPU에서 일어나는 연산 처리 시간을 획기적으로 줄일 수 있다. (출처: 김상욱 교수)

정보 자체를 저장하고 읽는 속도도 연구, 개선하다
 
정보들로 이뤄진 그래프의 크기는 무척 크다. 읽어 들이는 과정조차 상당히 시간이 걸린다. 이에 쓰이는 소프트웨어를 ‘그래프 엔진’이라 하는데, 김 교수는 최근 보다 효율적인 그래프 엔진도 연구했다. 그리고 이를 ‘현실세계의 그래프를 잘 반영한다’는 의미로 ‘Real Graph’라 이름 붙였다.

동시에 발생하는 ‘핵심 이슈’는 데이터 저장 방법이다. 그 큰 크기의 정보를 저장할 때 기존에는 별다른 가공 없이 저장하곤 했다. 김 교수는 각 정보를 저장할 때 저장하는 위치에 대한 약간의 재배열을 통해 처리속도의 큰 개선을 할 수 있다는 것을 발견했다. “같은 내용의 정보 더미를 저장 위치 배열만 바꿔 분석 알고리즘을 처리하니, 매우 큰 성능 개선을 보이더군요. 결국엔 정보의 특성을 잘 파악하여, 최적의 저장 위치를 파악한 후 재배열해서 저장함으로써 시스템 차원에서도 속도를 크게 개선할 수 있다는 거죠.”

그래서 김 교수는 어떤 배열이 효율적인지 시행착오를 반복했다. 수 차례의 시도 끝에 그래프에서 높은 상관관계를 보인 정보끼리 묶는 방법을 찾아내 높은 처리 속도를 이끌어냈다. 현실 세계의 정보가 어떤 형태인지 알았기에 가능한 일이었다.
▲ 그래프를 저장하는 과정에서 몇 가지 단계를 선행해 이후 분석시 속도를 높일 수 있다. (출처: 김상욱 교수)

데이터 저장, 처리, 분석 모두 알았기에 이룬 성과
 
김상욱 교수의 연구는 이처럼 데이터의 저장, 처리하는 시스템 분야에만 한정되지 않는다. 이를 기반으로 데이터를 분석하는 데이터 마이닝 분야도 김 교수의 주력 연구다. 그렇기에 시스템 분야 연구에도 이를 적극 활용한다. 이번 성과도 실제 수집되는 데이터를 분석해본 경험 덕에 이뤄낼 수 있었다. “시스템 분야 연구만 했다면 시스템 차원에서 빠르게 하는 방법만 연구했을 거예요. 그런데 실제 데이터가 어떤 형태인지 봐왔으니 적합한 방법을 찾을 수 있었죠.”

얼핏 당연한 얘기지만, 이런 성과들은 한두번의 시도로 이뤄지지 않았다. 직관적으로 옳은 방법을 적용해도 실제로 성능 향상이 이뤄지지 않는 경우도 많이 발생한다. “그렇지만 그런 실패를 반복하면서 더 좋은 방법 발견에 다가가는 거죠. 대학원생의 경우 실패에 얻는 정신적 타격이 클 수 있는데, 이를 잘 극복하면 실패하지 않은 것보다 더 좋은 역량을 얻을 수 있는 기회가 됩니다. 이러한 것을 잘 느끼게 해 주는 지도교수가 되고 싶어요.”
 
▲ 김상욱 교수는 "연구자는 본디 시행착오가 되게 많기 마련인데 같이 연구한 학생들이 단기적 실패에 너무 좌절하지 않았으면 한다"고 말했다.

 
글/ 이상호 기자          ta4tsg@hanyang.ac.kr
사진/ 강초현 기자        guschrkd@hanyang.ac.kr
URL복사/SNS공유

기사댓글 0