전세계적으로도 1백40여대 밖에 없는 초고속기계 수퍼컴퓨터. 가격만 해도 초대형 컴퓨터의 10배나 넘는 과학기술전용의 수퍼컴퓨터가 88년까지 국내에 도입된다고 한다.
컴퓨터를 이용한 일기예보는 30년 이상의 역사를 갖고 있으,나 태풍의 진로를 예측하거나 수일 후의 날씨를 정확히 예보한다는 것은 아직도 어려운 일이다. 그것은 컴퓨터의 계산속도와 용량에 한계가 있었기 때문이다. 예를들면 10일 후의 천기도를 정확하게 그리기 위해서는 지구전체를 50km정도의 간격으로 나누고 각 부분에서의 기압, 풍력, 기온, 습도, 해수온도 등의 데이타를 바탕으로 수십억회, 수조회의 복잡한 계산을 반복해야 한다. 그래서 등장한 것이 과학기술계산전용의 수퍼컴퓨터이다.
지능형 수퍼컴퓨터도 등장?
요사히 흔히 수퍼컴퓨터에 대해 주위에서 듣고 있으나 많은 경우 혼동하여 이해하고 있다. 즉 현재 우리나라에서도 도입하여 사용하고 있는 대형컴퓨터와 비교하여 상대적으로 더 크면 수퍼라고 생각하든가, 가격으로 얼마 이상이라든가, 계산 속도가 얼마이상인 것 등이다. 그런가 하면 간혹 신문지상에서 생각하는 지능형 수퍼컴퓨터가 나온다고 하는가 하면, 다른 한편으로는 일초에 몇 억의 명령어를 계산 수행하는 수퍼컴퓨터가 나왔다고도 한다.
이 모든 형태의 것이 언뜻 생각하기에는 같은 컴퓨터를 다르게 말하는 것 같으나 실상 내용을 보면 컴퓨터의 구조면이나 특성, 그리고 응용면에서 매우 다르다. 수퍼컴퓨터를 응용 분야별로 생각을 해 보면 대체로 상업응용 처리용과 계산용으로 나누며 계산용은 또 수치계산용과 비수치계산용으로 나눈다. 이중 전통적으로 수퍼컴퓨터를 일컫는 것은 수치계산용 컴퓨터이다. 대개 과학용 수치계산을 목적으로 특수 설계 제작한 컴퓨터를 말한다. 이와 같이 복잡한 과학계산 즉 일기예보 등을 위한 계산 또는 엔지니어링을 위한 설계용 계산 등으로 일부 제한된 사용자들이 사용하였므로 일반에게는 별로 친숙한 대상이 아니었다.
그러나 최근 일반에게도 흥미를 끌게 된것은 생각하는 지능형 수퍼컴퓨터의 등장이다. 이것은 계산용 컴퓨터중에서 수치계산이 아니고 인공지능등에서 다루는 비수치형 논리계산(symbolic computation)을 빠르게 처리할 수 있는 컴퓨터를 개발하다는 것이다. 이 분야는 각 선진국이 야심에 찬 계획으로 연구를 진행하고 있는 분야로서 아직 사용된 정도로 개발이 된 것은 아니다. 미국의 방위전략인 '스타워즈' 계획도 수퍼컴퓨터의 성능이 성패를 좌우한다고 보는 사람도 있다.
수퍼컴퓨터 구조의 공통점은 계산의 능력을 높이기 위해 여러개의 중앙처리장치(multiprocessors)를 사용한다는 점이다. 즉 병렬로 계산할 수 있도록 구조를 설계한다는 것이다.
과학계산이나 인공지능형 수퍼컴퓨터는 병렬처리의 응용에 해당하는데 실제 하드웨어의 구조나 시스템소프트웨어면에서, 응용의 근본 내부구조의 병렬성 성격이 달라 컴퓨터의 구조는 서로 형태를 달리하고 있다.
기원전 2백년 전부터 시작
병렬로 처리하는 생각을 언제부터 했는가에 대해서는 애매한 탄생배경 및 역사를 말하는 사람도 있다. 일설에는 기원전 2백년 전 그리스에 이미 계산장소 3곳을 한평판에 설치한 것이 발견되어 동시에 계산을 나누어 하지 않았을까 추측하였다. 또 컴퓨터가 발명되기 전인 1922년에 '리차드슨'이라는 사람은 6만4천명의 인원을 동원하여 일기예보용 수치계산을 나누어 해보려는 시도를 한적도 있다고 한다. 이러한 모든 노력은 어떠한 주어진 일을 나누어 문답하여 빠른 결과를 시도한 것으로 이른바 병렬처리(parallel processing)인데 컴퓨터가 발명된 이후에도 같은 원리를 구현하기 위하여 연구해 왔다.
여러사람의 다른 일을 많이 처리해주려는 상업응용의 다중처리 경우는 어떻게 개인당 계산을 할당해 주는가가 문제이므로 강력한 중앙처리장치의 계산능력을 나누어 주든지 아니면 수퍼능력을 위해, 여러처리장치를 사용할 경우, 장치당 몇 사람일을 담당할 수 있도록 컴퓨터를 설계한다. 그러므로 처리장치 사이에는 서로 관계가 별로 없고 사용자들의 공통부분인 데이타베이스등에만 관계를 한다.
반면에 한 주어진 문제를 나누어 계산을 해야하는 병렬처리 경우에는 주어진 문제를 잘 나누는 방법및 나누어진 분담 업무 사이와의 연락관계 등이 매우 중요하다. 이러한 분담이 잘 이루어져야 병렬성이 높아진다. 실제 많은 처리장치를 하드웨어로 제공할 경우 제대로의 최대효율을 낼 수 있기 때문이다. 그러므로 수퍼컴퓨터의 설계에서 중앙처리장치(CPU)만 많이 늘린다고 해서 그에 비례해 성능이 높아지는 것은 아니고 주어진 일의 성질에 따라 얼마나 일을 골고루 잘 나누어 줄 수 있는가에 성능이 달려 있는 것이다.
그런데 골고루 나눌 수 있는 성질의 것인지에 대한 응용분야의 특성문제는 우리주위에 있는 여러문제와도 비슷하다. 즉 어떤 일은 사람을 많이 투입할수록 효울이 높아 빨라질 수 있는 것이 있고 반면에 아무리 많이 투입해도 한두 명의 일 결과를 기다려야만 되어 그만큼 결과가 안 나오는 일이 있다. 예로 전자의 경우는 건설현장의 벽돌 쌓는 일은 인부의 수(처리장치)에 비례하나, 설계 등 고급기술에 관련된 것은 몇몇 사람이 할 수 있으므로 아무리 많은 인원이 있어도 그 사람들의 인원 이외엔 효용이 없다. 즉 일의 진행과정에 있어 몇몇이 시간을 걸려 해결하는 부분과(seguential part) 어떤 부분은 사람이 많을수록 효율이 있는부분(parallel part)이 서로 적당히 섞여 있게된다.
덩치만 크다고 수퍼가 아니다
이러한 특징들이 수퍼컴퓨터를 이용하는 응용에도 적용이 되므로 주어진 많은 처리장치를 완전히 최대로 이용할 수가 없게된다. 유명한 '암달'의 법칙에 의하면 병렬성이 아닌 순서적수행 부분의 비율에 따라 컴퓨터의 성능이 결정되는데 그 비율이 조금만 증가 되어도 효율의 저하는 급강하 하여 응용의 성질에 따라 수퍼컴퓨터의 효능이 많이 떨어진다는 것이다.
병렬처리 응용 중 수치계산 분야는 일단 병렬성이 가능한 부분은 그 계산 규칙이 일정하여 처리장치를 최대로 이용할 수 있는 규칙성을 지니고 있다. 그러므로 순서적 처리명령은 일반 컴퓨터처럼 순서적으로 하고 병렬부분은 수치계산은 그것을 전용으로 하는 병렬처리장치(arry processor또는 vector processor)등에 일임을 하는 컴퓨터 구조를 하고 있다.
이와 같은 구조가 우리가 전통적으로 이야기 하는 수퍼컴퓨터인데 수치응용분야의 병렬처리 방식은 상당히 규칙적인 성격이 있다. 하나의 처리장치 자체는 간단하나 여러개가 모여 주어진 계산을 나누어 할 수 있는 기능별 프로세서를 따로 두고 나머지는 일반 컴퓨터와 같은 구조를 가지고 있다.
일의 성질상, 기업 건설회사와 유사성을 갖는데 순서적 일이 되면 대규모 인부를 동원하고 다음엔 순서적 일을 하고 또 대규모 인원으로 처리하고 있는 방식이다.
그러나 최근에 이 같은 형태의 수퍼컴퓨터에 도전하여 다른 방식으로 수치계산등에 효율을 높이려고 하는데 이것은 저렴한 마이크로프로세서들을 대량으로 엮어 수치계산을 분담하려는 시도이다. 전통적인 수퍼컴퓨터 방식은 모든 부분을 특수하게 설계하므로 천만달러 규모의 상당히 비싼 제품이 되고 있다. 그러나 값싸게 동일한 형태를 엮은 마이크로프로세서를 이용한 처렬처리를 시도하여 기존 수퍼컴퓨터의 능력에 도전하고자 하는 것이다. 여기에서도 해결해야 할 것은 어떻게 일의 분담을 효율적으로 할 수 있느냐는 것이다. 예를 들면 인부를 적게 갖고 있는 소규모 건설회사들이 서로 뭉쳐 대기업 규모의 일을 해나가 보자는 형태일 것이다.
무질서의 혼미를 극복한다
같은 병렬처리 응용분야이긴 해도 인공 지능분야에 관한 특성은 수치계산분야와 매우 다르다. 분담된 일 사이의 규칙성이 거의없어 무질서 하다는 점이다. 이 때문에 처리장치를 효율적으로 이용하기가 매우 어렵다. 이 응용분야의 계산 분담을 어떻게 잘 나누어야 실제 처리장치에 효율적으로 분배할 수 있는가 하는 연구가 나라에서 활발히 연구 중이다. 일본에서 진행중인 제5세대 컴퓨터도 이 범주에 속하는데 지금 두번째 단계로서 병렬처리를 위한 분배 방법및 컴퓨터구조를 연구개발하는 단계에 있다.
수치계산이 병렬처리특징상 규칙적 흐름을 가진것과 대조적으로 비수치 영역인 인공지능분야 응용엔 어느 순간에는 어느 그룹의 처리장치만 쓰고 다른 순간에는 다른 그룹이 쓰는 등 그 흐름을 예측할 수가 없다. 결국 어느 경우도 허용하는 복잡한 구조를 설계하게 된다. 이는 1백명의 건설현장 인부가 있어도 시간에 따라 이쪽 또는 저쪽의 몇몇 인부만 활용할 수 밖에 없는 복잡한 형태의 속성을 가지고 있다.
지금까지 고전적으로만 생각해오던 수치 계산형 수퍼컴퓨터에서 부터 최근에 나타나는 비수치형 수퍼컴퓨터 그리고 상업응용의 컴퓨터 특성 등을 살펴보았다. 처음부터 분야별로 수퍼컴퓨터를 분류했으므로 응용분야는 명확할 것이다.
수치형 수퍼컴퓨터는 복잡한 과학계산 및 우주선 등을 제어하기위한 빠른 반응 및 제어를 감당할 계산용, 복잡한 수식을 풀어 예측하는 일기예보, 영상처리계산 등 주로 빠른 계산이 요구되어 수치 응용분야이다. 아직 실용화되어 나온 인공지능형 수퍼컴퓨터는 방식에서 벗어나 일반인의 명령을 이해하는 지능형 컴퓨터를 가능하게 하고 자동번역, 음성영상인식, 의사결정, 전문가시스템 등 비수치적 응용영역이 크게 부각될 것이다.
도입보다는 개발을
수퍼컴퓨터는 (현재는 대개 수치계산형)가격이 몇백만 달러에서 천만 달러에 이른다. 우리나라 입장에서 볼 때 매우 비싼 것 이어서 우리도 들여올 필요가 있는 것인지에 대해 여러 의견이 있는듯 하다, 워낙 비싼 가격과 또 제한된 사용자 때문에 아직도 세계적으로 많이 보급되어 있는 것은 아니다.
우리나라에서 수퍼컴퓨터를 들여와야 하는가에 이것을 제대로 활용할 전문가들이 있는가, 활용할 수치계산 활동이 많은가 등 여러가지를 고려해야 할 것이다. 우리도 기초연구등이 강화됨에 따라 점차 복잡한 수치계산을 요구하는 연구가 있고 이것을 처리하기 위해 일본으로 보내는 경우가 있다는 소식도 있다. 이러한 활동이 수퍼컴퓨터를 전용할 정도로 많아지면 그때 도입도 고려해야 하므로 얼마나 요구가 되는지 정확한 통계가 중요하다 하겠다. 실제 값비싼 많은 컴퓨터를 들여와 제대로 활용을 못하는 경우가 지금까지 종종 있어왔던바, 우리 스스로 슬기로운 활용방안을 강구해야 할 것이다.
또 한편의 의견은 우리도 이와 같은 수퍼컴퓨터의 개발을 시도해야 하지 않는가 하는 것이다. 실제 한대당 가격이 비싸므로 일반 컴퓨터와는 달리 시장성을 보지 않아도 주문형식의 개발도 가능하다는 의견이다. 우리의 기술수준이 아직은 수퍼마이크로컴퓨터(미니급보다 아래) 정도이므로 격차가 상당히 있으나 마이크로프로세서를 이용한 새로운 방법 등이 제시되고 있으므로 가능성이 없다고 할 수는 없다.
일본의 경우는 수치계산용 수퍼컴퓨터 개발에서 이미 미국의 기술을 앞질러 가려하고 있다. 이는 대형 컴퓨터개발에 IBM 유사형으로부터 시작해서 수퍼컴퓨터까지 차근차근 따라갔으므로 우리도 그런 전철을 밟는다면 중형, 대형 등을 개발해 보아야 할 것이다. 일본은 또한 남의 기술의 모방이라는 오명을 벗기위하여 인공지능형 수퍼컴퓨터개발도 시도하고 있다. 우리나라 입장에서도 이와같은 분야의 연구개발이 필요 하겠으나 여러 기반기술을 우선 구축해야 하므로 전략적으로 효율적인 방법이 요구된다. 요사이 새 방법으로 등장하는 마이크로프로세서를 이용한 병렬처리컴퓨터의 개발등이 하나의 가능성이 될 수 있을 것이다.