책에 언급된 각종 기술들
- CDC 6600의 ‘장작 다발(cordwood module)’ 패키지
- 수냉식 냉각
- 벡터처리
- 다중프로세서
CDC 6600에서는 회로의 부피를 줄이고 부품 간의 거리를 최소화하기 위해서 두 장의 회로보드를 약간의 간격을 두고 마주보게 만든 다음, 그 사이에 부품들을 수직으로 장착하였다. 사용된 부품들이 대부분 길죽한 모양이므로 두 보드 사이를 쳐다보면 부품들이 장작이 쌓여있는 형태로 보이게 된다.
전자제품이 물에 닿으면 안 되는 이유는 물이 전도성 물질, 즉 전기가 통하는 물질이기 때문입니다. 만약, 전기가 통하지 않는 액체가 있고 그 액체의 끓는 점이 너무 낮지 않다면 뜨거운 전자제품을 식히는 데 사용할 수 있습니다. Cray-2 컴퓨터는 Fluorinert 라는 액체에 컴퓨터 회로를 담가 놓는 방식을 사용했습니다. 아래의 비디오에서 1분22초 지점을 보시면 담가 놓은 컴퓨터 회로의 열기로 인해서 물방울이 떠오르는 것을 (안타깝게도 아주 잠깐) 볼 수 있습니다.
Fluorinert는 3M에서 의료용으로 개발한 액체였습니다. 최근에는 컴퓨터를 담가 놓는 용으로 Novec이라는 전용 액체가 소개되었습니다. 아래의 비디오를 보시면 어떤 방식으로 사용되는지 생생하게 보실 수 있습니다.
벡터처리는 입력값만 다르고 계산은 동일한 작업들이 반복되어 나타날 때 유효합니다.
예를 들어 어느 학교에서 음악관련 과목의 성적을 계산하기 위해 필기시험 점수와 실기시험 점수를 합쳐야 한다고 합시다. 한 반의 학생수가 30명이라면, 1번 학생부터 30번 학생까지 필기시험 점수가 총 30개, 실기시험 점수가 총 30개 있습니다. 이제 필기시험 점수와 실기시험 점수를 합하여 최종점수를 구하려면 다음과 같이 계산하면 됩니다. (너무 쉽죠~)
1번 학생 필기점수 + 1번 학생 실기점수 => 1번 학생 최종점수
2번 학생 필기점수 + 2번 학생 실기점수 => 2번 학생 최종점수
.
.
.
30번 학생 필기점수 + 30번 학생 실기점수 => 30 학생 최종점수
만약 한 개의 계산기로 덧셈을 한 번씩 차례로 진행한다면 전체 계산 시간은 (한 번의 덧셈 계산 시간 x 30)이 됩니다. 이런 계산 방식을 스칼라처리 방식이라고 합니다.
이에 비해서 벡터처리 방식은 30개의 덧셈을 다음과 같이 한 번에 처리합니다.
(1번 학생 필기점수, 2번 학생 필기점수, … , 30번 학생 필기점수)
+
(1번 학생 실기점수, 2번 학생 실기점수, … , 30번 학생 실기점수)
=> (1번 학생 최종점수, 2번 학생 최종점수, … , 30번 학생 최종점수)
그렇게 하려면 계산기가 조금 달라져야 합니다. 일단 30개의 덧셈을 한 번에 처리할 수 있도록 만들어집니다. 그리고, 덧셈을 하려면 1번부터 30번 학생까지의 필기점수를 미리 계산기에 입력하고, 그 다음에는 1번부터 30번 학생까지의 실기점수를 계산기에 미리 입력해야만 합니다. 입력이 끝나면 단 한 번의 동작으로 덧셈이 완료됩니다.
벡터처리 방식은 한 번에 여러 개의 계산을 처리한다는 점에서 성능향상을 제공하지만 복수 개의 입력 데이터를 관리하기 위해서는 구조가 복잡해집니다.
프로세서는 컴퓨터의 두뇌와 같습니다. 계산을 하고 판단을 하는 일이 프로세서에서 이루어집니다. 계산과 판단을 더 빨리 할 수 있다면 그만큼 컴퓨터의 성능이 좋아집니다. 다중 프로세서 시스템은 프로세서를 여러 개 가지고 있는 컴퓨터입니다. 혼자 해야 할 일을 여러 명이 하면 더 빨리 끝낼 수 있듯이 다중 프로세서 시스템은 단일 프로세서 시스템에 비해서 성능의 향상을 제공할 가능성이 많습니다. 이 가능성은 시스템을 잘 설계해야만 현실화될 수 있습니다.
예를 들어, 앞에서 언급했던 음악 점수 계산에 다중 프로세서 시스템을 도입한다고 합시다. 덧셈을 할 계산기를 한 개가 아니라 두 개 사용하는 겁니다. 하지만 계산기를 두 개 쓴다고 해서 바로 성능이 좋아지지는 않습니다. 저절로 계산기 두 개가 알아서 서로 속닥거리면서 일을 나누어 하지는 않습니다. 작업 관리자가 일단 1번부터 15번 학생까지의 계산과 16번부터 30번 학생까지의 계산으로 쪼개어 각각 계산기에 할당해야만 합니다. 하지만 이것만으로 성능이 아주 좋아지지는 않습니다. 계산을 해서 결과를 적는 종이가 한 장밖에 없다면 두 계산기의 작업이 끝날 때마다 그 종이를 사용하기 위해서 경쟁을 해야 하고, 다른 계산기가 쓰고 있다면 기다려야 합니다.
따라서, 다중 프로세서 시스템은 성능 향상의 가능성은 가지고 있지만, 실제로 성능 향상을 실현하기 위해서는 하드웨어와 소프트웨어 양쪽에서 많은 추가적인 고려가 필요합니다.