d라이브러리









Ⅱ 놀고 있는 컴퓨터 그물망으로 엮는다

외계인 탐색 꿈꾸는 그리드 컴퓨팅

분산된 컴퓨팅 자원을 연결해 가상의 슈퍼컴퓨터로 활용한다는 개념의 그리드 컴퓨팅이 주목받고 있다. 실제로 전세계적으로 추진되고 있는 그리드 컴퓨팅 관련 프로젝트가 그 열기를 증명한다. 그리드 컴퓨팅의 개념과 현주소, 그리고 이에 따른 컴퓨팅 패러다임의 변화를 짚어보자.
 

놀고 있는 컴퓨터 그물망으로 엮는다


오늘 하루 12군데의 대리점을 방문해야 하는 영업사원 K씨. 본사에서 가장 가까운 곳부터 들러야겠다는 계획을 세워보지만 언제 다 돌아볼지 막막한 심정이다. 시간과 거리를 꼼꼼히 따져봤지만 내가 선택한 길이 과연 최적인지도 의문이다. 이럴 때 누군가가 가장 짧은 경로를 계산해 알려준다면 얼마나 좋을까.

‘외판원 문제’(traveling salesman problem)로 잘 알려진 이런 유형의 문제는 수학의 대표적 난제로 손꼽힌다. 가능한 모든 경우의 경로를 다 계산한 다음 최소거리를 여행하는 경로를 선택해야 하는데, 주어진 경로가 많아질수록 계산해야 하는 경우의 수가 기하급수적으로 늘어나기 때문이다. 고성능 컴퓨터와 효율적인 알고리듬을 사용한다고 해도 계산에 필요한 시간은 상상을 초월할 정도로 오래 걸린다. 만일 이렇게 복잡한 문제를 여러개로 잘게 쪼갠 후 각각을 여러 대의 컴퓨터에 나눠서 계산하도록 하고, 그 결과를 다시 하나로 합친다면 최적의 해답을 구할 수 있지 않을까.

가상의 슈퍼컴퓨터

인간의 기술로 탄생한 컴퓨터가 빠른 속도로 발전을 거듭하면서 인간이 쉽게 풀지 못하는 수많은 난제들의 ‘해결사’ 역할을 해주고 있다. 하지만 컴퓨터와 네트워크의 성능이 빠르게 좋아진다고 해서 모든 문제가 쉽사리 해결되는 것은 아니다. 첨단과학기술 분야는 지속적인 발전을 꾀하면서 끊임없이 변화하고 있기 때문이다. 결국 우리 주변에는 최신 기종의 슈퍼컴퓨터를 사용한다고 해도 좀처럼 해결책을 찾기 어려운 문제들이 산재해 있는 셈이다. 기상예측, 유전자분석, 나노기술연구, 신약개발 등이 대표적인 사례다.

이렇게 복잡하고 어려운 문제들을 해결하기 위한 방법의 하나로 최근 급부상하는 기술이 바로 ‘그리드 컴퓨팅’이다. 그리드(Grid)는 전세계에 분산된 자원들이 서로 연결돼 마치 격자나 그물망 같은 형태를 나타낸다는 의미에서 만들어진 용어다. 즉 인터넷으로 연결된 컴퓨팅 자원을 엮어 하나의 시스템인 ‘가상의 슈퍼컴퓨터’를 만들어냄으로써 어려운 문제 해결에 활용한다는 개념이다.

슈퍼컴퓨터는 일반 상업용 컴퓨터에 비해 데이터 처리속도가 수백-수천배에 이르는 말 그대로 ‘슈퍼급’ 컴퓨터다. 슈퍼컴퓨터의 성능은 한 국가의 과학기술을 좌지우지한다고 해도 과언이 아닐 만큼 중요하다. 초대형 규모의 경제시스템 분석, 국가 방어체계, 난치병 연구 등의 국가적 차원의 프로젝트는 슈퍼컴퓨터가 있어야만 해결할 수 있기 때문이다. 하지만 슈퍼컴퓨터는 보통 10억원에서 많게는 1천억원이 넘을 정도로 가격이 너무 비싸다. 게다가 ‘최고급 두뇌’인 만큼 전기료와 관리비 등 ‘품위유지비’도 상당하다. 이런 단점을 극복하기 위해 전세계에 분산된 수많은 컴퓨팅 자원을 엮어서 활용하려는 그리드 컴퓨팅 기술이 탄생한 것이다.
 

슈퍼컴퓨터의 성능은 그 나라 의 과학기술 수준을 결정지을 만큼 중요하지만, 가격이 너 무 비싸고 유지비가 많이 든 다는 단점이 있다. 분산된 컴퓨팅 자원을 활용하는 그리 드 컴퓨팅은 이런 단점을 해 결해준다.


문제를 쪼개 병렬식으로 계산

복잡한 연산 문제를 쪼갠 후 분산된 컴퓨팅 자원에서 계산하는 작업이 어떻게 가능한 것일까. 이 궁금증을 해결하기 위해 데이터가 유통되는 과정을 들여다보자. 인터넷을 통해 데이터를 여러 대의 컴퓨터에 전송하려면 이 데이터를 인터넷 정보교환 약속인 TCP/IP에 맞게 가장 효율적인 크기의 패킷으로 쪼개야 한다. 분할된 패킷에는 각각 별도의 고유 번호가 붙고, 목적지 주소와 에러 검출용 코드가 포함된다. 각 패킷은 서로 다른 인터넷 경로를 통해 전송될 수 있다. 보내진 패킷들이 나중에 결과치를 안고 되돌아오면 이들을 모두 합쳐 원래의 파일로 재조립한다. 간단하게 표현하면 매우 복잡한 문제를 세분화해 작은 단위인 패킷으로 나누고, 이를 전세계의 컴퓨터 자원에 분산시켜 계산토록 해 결과를 이끌어낸다는 개념이다.

이렇듯 그리드 컴퓨팅은 분산된 컴퓨팅 자원을 통신망으로 연결해 활용함으로써 문제 해결에 접근하는 것이다. 이런 개념의 적용이 가능한 이유는 상당수의 연산 문제들이 작은 문제로 쪼개서 풀 수 있는 성질을 갖고 있기 때문이다. 기상예측의 경우를 보자. 예를 들어 온도를 예측하려면 각 지역을 대표하는 기상자료 격자값과 인접한 기상자료 격자값을 비교·계산해야 한다. 결국 전체 문제를 따로 잘라내 병렬식 계산을 하면 빠른 시간에 그 결과를 얻어낼 수 있다. 따라서 이상적인 그리드 네트워크가 완성되면 기존의 단일 컴퓨터로는 풀기 어려웠던 대량 데이터에 대한 고속 연산이 가능하기 때문에 정보기술(IT) 분야뿐만 아니라 나노기술(NT), 생명공학(BT), 환경공학(ET) 분야까지 한단계 도약할 수 있는 핵심 기술로 사용할 수 있다.

하지만 그리드 컴퓨팅이 대형 연산만을 위해 만들어진 기술은 아니다. 그리드 컴퓨팅이 위력을 발휘할 수 있는 분야는 크게 두부분으로 나뉜다. 과학자들에게 무제한의 컴퓨팅 자원과 데이터 자원을 제공해 연산작업에 활용할 수 있도록 하는 기능은 대형 연산 등 복잡한 문제를 풀이하는데 활용되며, 멀리 떨어져 있는 사람들끼리 협력해서 일을 처리하거나 온라인 커뮤니티를 형성·발전시킬 수 있는 환경을 조성하는 기능은 P2P 컴퓨팅에서 활용된다. 따라서 그리드 컴퓨팅은 대형 실험장비, 고성능 관측장비, 슈퍼컴퓨터, 그리고 개인용 컴퓨터에 이르기까지 다양한 자원을 필요로 하는 사용자들에게 보편적인 서비스가 될 것으로 주목받고 있다.

한국도 핵심기술 개발에 나서

그리드 컴퓨팅 환경을 구축하기 위해서는 개별적인 하드웨어와 소프트웨어를 하나의 통합 자원으로 연결시키는 작업이 필요하다. 하지만 단순히 컴퓨터 자원만을 연결하는 것이 아니라 대용량 저장장치, 데이터베이스, 전파망원경 등의 고성능 연구장비까지 포함돼야 한다.

여기에서는 크게 세단계의 구축원칙이 필요하다. 먼저 세계의 여러 기관에 흩어져 있는 자원들이 다양한 형태로 존재하기 때문에 서로 다른 부분의 충돌 가능성을 없앨 수 있는 특별한 기능이 갖춰져야 한다. 예를 들어 컴퓨터의 기종이나 운영체제가 각기 다르다는 이유로 데이터의 상호교환이 이뤄지지 않는다면 서로 연결돼 있다고 하더라도 무용지물이 되기 때문이다. 또 그리드의 크기가 커질지라도 네트워크 성능이 나빠지지 않고 시스템의 부하가 균등하게 이뤄질 수 있는 기능을 갖춰야 하며, 그리드 컴퓨팅 환경에서 연결된 수많은 자원들을 사용하던 중 일부가 고장난다고 하더라도 다른 자원에 별다른 영향 없이 활용할 수 있는 기능도 갖춰져야 한다.

그리드 컴퓨팅의 대표적 사례는 미국 버클리대에서 추진하는 ‘세티엣홈’(SETI@HOME) 프로젝트다. 세티엣홈은 외계에서 오는 전파를 분석해 외계인의 존재를 연구하고자 하는 프로젝트로, 참여를 원하는 사용자가 프로그램을 다운로드받아 컴퓨터에 설치하면 된다. 이 프로그램은 사용자가 컴퓨터를 사용하지 않는 시간에 마치 스크린세이버처럼 작동하면서 버클리대에서 인터넷으로 보내온 패킷 데이터를 분석한다. 분석이 끝난 패킷은 다시 버클리대의 서버로 보내지고, 이같은 방식으로 전세계의 데이터를 수집해 외계인의 존재를 연구한다. 백혈병이나 AIDS 치료제를 개발하는 미국 암협회와 국립 암연구재단의 프로젝트도 같은 방식의 공동 연구가 수많은 참여자에 의해 진행되고 있다. 또한 미국의 투자분석회사인 JP모건은 주가 추이를 분석하고 투자 위험을 관리하기 위한 일환으로 소규모의 그리드를 이용하고 있다.

이 외에도 미국은 지난 1998년부터 인간게놈지도 작성, 지진예측분석, 항공기 통합설계 등 다양한 분야에서 슈퍼컴퓨터센터와 정부출연연구소를 중심으로 그리드 관련 프로젝트를 진행하고 있다. 유럽연합은 기초과학 연구지원 사업인 유로피언 데이터 그리드와 산업기술 연구지원 사업인 유로 그리드를 1999년부터 추진하고 있으며, 일본은 2006년 완성을 목표로 스위스 유럽 공동원자핵연구소(CERN)의 입자가속기와 연동해 고에너지 물리학 분야의 프로젝트를 진행하고 있다.

국내에서도 정보통신부가 국가 그리드 기본계획을 수립해 추진하기로 했다. 2002년부터 5년간 4백35억원을 투입해 그리드 네트워크를 구성하고 그리드 운영센터를 구축해 미들웨어(두개의 프로그램 사이에서 매개역할을 하는 프로그램)와 3차원 검색기술 등을 중점적으로 개발할 예정이다. 정통부의 한 관계자는 “그리드 프로젝트가 아직 명확한 성격을 띠고 있진 않지만, 산학연 전문가들과 협조체계를 구축해 국가적인 차원에서 이 사업을 추진할 것”이라고 말했다.

사용자 동의없이 자원 이용한다

한편 과학전문지 네이처 최신호에는 그리드 컴퓨팅과 관련한 컴퓨팅 기술의 새로운 개념이 제시됐다. 미국 인디애나 노틀담대의 물리학과와 컴퓨터학과 출신의 과학자들이 그 주인공.

이른바 ‘기생 컴퓨팅’(parasitic computing)이라 불리는 이 기술의 핵심은 특정 난제를 해결하기 위해 전세계의 컴퓨터 자원을 소유자의 동의 없이 이용한다는 것이다. 즉 복잡한 계산 문제를 패킷으로 분할해 전세계의 웹서버에 보내면, 웹서버에서 계산이 수행된 후 되돌아온다. 물론 계산 결과치가 필요 없으면 패킷은 돌아오지 않는다. 네이처는 연산에 참여하는 웹서버가 그 사실을 인식하지 못한다는 점에서 레이더에 잡히지 않는 스텔스기를 따 ‘스텔스 컴퓨팅’이라고 소개했다.

노는 CPU 자원을 분산컴퓨팅 기법을 이용해 하나로 묶어 가상의 슈퍼컴퓨터를 만들어내려는 노력은 그리드 컴퓨팅과 유사하지만, 확실한 차이점이 존재한다. 그리드 컴퓨팅은 사용자가 자신의 컴퓨터에 소프트웨어를 설치해야, 즉 사용자의 동의가 있어야 자원이 이용될 수 있는 반면, 기생 컴퓨팅은 사용자의 동의 없이도 전세계의 컴퓨터를 사용할 수 있다.

그렇다면 컴퓨터 서버에 부하를 주진 않을까. 해킹의 위험도 무시할 수 없지 않은가. 논문의 공동저자인 KAIST의 정하웅 교수는 기생 컴퓨팅 기법에 대해 “계산을 주목적으로 하는 컴퓨터와 통신을 주목적으로 하는 인터넷의 절묘한 결합”이라고 소개하면서 “사용이 공개된 서버의 특정 부분에만 접근하기 때문에 서버의 부하나 보안상의 위험을 초래할 일은 없다”고 말했다.

예를 들어 패킷을 하나 보낸다는 것은 특정 홈페이지에 접속해 클릭을 한번 하는 것과 같은 부하다. 웹서버에서는 정보를 달라는 클릭으로 인식하고 요청한 계산 결과치를 알려주기 때문이다. 따라서 패킷은 웹서버가 열려있는 한 자유롭게 접근할 수 있으며, 시스템에 큰 부하를 주지 않는다. 하지만 이 기술이 완벽하게 안전한 것은 아니다. 컴퓨터 소유자의 동의 없이 사용자의 자원을 이용하므로 윤리적·법적 문제를 초래할 가능성을 배제할 수 없다. 새로운 기술의 발전에 따른 윤리적 성숙이 강조돼야 하는 이유다.
 

그리드 컴퓨팅이 일반화되면 유전자분석과 같은 대형 난제에 대해 전세계 사람들이 협력함으로써 쉽게 해결할 수 있다.


새로운 혁명 준비

이제 우리는 성능의 한계를 지닌 단일 컴퓨터에서 끙끙대던 시절을 지나 나의 컴퓨팅 자원과 다른 사람들의 컴퓨팅 자원을 알게 모르게 서로 나눠 쓸 수 있는 시대에 살고 있다. 전세계의 사람들과 협력해 하나의 대형 프로젝트를 해결할 수 있다는 개념은 과거의 환경에서는 전혀 상상할 수 없는 일이었다.

사실 개개인의 컴퓨터 활용도는 10-20%에 불과하다. 대부분의 사용자들은 일반적으로 컴퓨터 사용시간이 적거나, 많이 사용한다고 하더라도 특정 프로그램 몇개만을 쓰는데 익숙하기 때문이다. 수많은 컴퓨터의 유휴자원을 모아 활용할 수 있다면 가히 컴퓨팅 패러다임의 혁명이라고 하지 않을 수 없다.

그리드 이론의 창시자인 미국 시카고대 컴퓨터공학과 이안 포스터 교수는 그리드를 ‘새로운 정보기술의 사회간접자본’이라고 표현했다. 그리드 컴퓨팅이라는 개념이 얼마나 중요한지 단적으로 나타내는 말이다. 개념상으로 따져볼 때 그리드 컴퓨팅이 갖는 잠재력은 가공할만하다. 하지만 마냥 기대에 부풀어있을 일은 아니다. 그 잠재적인 힘에 걸맞는 확실한 결과가 아직은 없기 때문에 접근과 활용에 신중을 기해야 한다는 점도 반드시 인지해야 한다.

인터넷이 전세계의 컴퓨터를 서로 연결하는 인프라로서 한차례 큰 변혁의 바람을 몰고 왔다면 하드웨어와 소프트웨어, 그리고 네트워크의 결합이라 할 수 있는 그리드 컴퓨팅은 지금, 이 인터넷을 활용한 또 한차례의 혁명을 준비하고 있다.

P2P 컴퓨팅

서버와 클라이언트로 구성된 기존 네트워크는 서버 집중식이기 때문에 당연히 서버의 역할이 강조됐다. 기존의 네트워크에서는 서버와 클라이언트를 각각 관리자와 사용자라고 표현할 수 있다. 즉 각 클라이언트의 행동을 서버가 통제한다는 개념이므로 수많은 클라이언트가 한 서버에 접속할 경우 서버의 속도가 느려지거나 다운되는 일이 발생한다. 마치 수많은 사용자를 한 사람의 관리자가 통제하기 힘든 것과 같은 이치다. 신문 사이트에 접속해서 원하는 기사의 키워드를 검색창에 넣으면 가끔 ‘사용자가 너무 많습니다. 잠시 후 다시 시도해 주십시오’라는 메시지를 만나게 되는데, 이 경우가 대표적인 사례다.

P2P 컴퓨팅은 이런 단점을 없애기 위해 분산컴퓨팅 기법을 도입한다. 서버가 집중적으로 안고 있던 부하를 클라이언트들이 분산해서 나눠 갖는다는 개념이다. P2P 컴퓨팅에 참여하는 각각의 컴퓨터를 피어(Peer)라고 부르는데, 각 피어는 서버와 클라이언트 역할을 모두 수행할 수 있다. 즉 피어는 네트워크 내의 다른 피어에게 직접 요구할 수도 있고, 다른 피어로부터 받은 요구에 응답할 수도 있기 때문에 사용자가 자신이 활용하는 서비스에 대해 통제권과 자율성을 가질 수 있다.

따라서 P2P 컴퓨팅에서는 기존의 서버 집중식 네트워크가 갖던 문제점인 트래픽 부하를 해결할 수 있을 뿐만 아니라 네트워크를 구성하는 사용자가 증가할수록 효율적인 P2P 컴퓨팅을 실현시킬 수 있다. 예를 들어 P2P 프로그램을 컴퓨터에 설치하고 공유 폴더를 설정하면 사용자는 동일한 P2P 프로그램을 설치한 모든 이용자들과 서로 공유를 허락한 폴더를 검색할 수 있다. 결국 사용자가 많아질수록 검색률이 더 높아지는 형태로 발전하는 것이다. P2P 컴퓨팅은 자원을 분산하고 효율적으로 이용할 수 있다는 측면에서 높게 평가받을 수 있다.

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

2001년 12월 과학동아 정보

  • 장미경 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?