(책) 생각하는 기계
개요
- 원제는 "The Pattern On The Stone: The Simple Ideas That Make Computers Work (Science Masters)"
- 대니얼 힐리스의 굉장함에 놀라면서 읽게 되는 책이다.
- 여타 컴퓨터 과학 입문서보다 조금 더 물리적인 관점을 접할 수 있다.
- 원리만 이해하면, 물이나 로프로도 "기계식" 컴퓨터를 만들 수 있다는 것이 이 책의 기본 스탠스.
- 알고는 있는데 하하 찰스 베비지 시대 이야기 아닌가요 싶은 생각도 들겠지만, 대니얼 힐리스는 직접 장난감과 로프로 기계식 컴퓨터를 만들었다. 이 컴퓨터는 현재 MIT 컴퓨터 박물관에 소장되어 있다.
- 책의 앞부분에서 수도와 밸브, 기계 장치로 AND/OR 게이트를 만드는 법을 설명하기도 한다.
인용
튜링 기계에 대하여
4장. 튜링 기계는 과연 보편적일까? 중에서
튜링 기계가 어떤 것인지 감을 잡기 위해 두루마리 종이 위에 계산을 하고 있는 한 수학자를 상상해 보자. 그 두루마리는 무한정 길어서 계산을 아무리 많이 해도 종이가 모자라는 법이 없다. 그렇다면 일단 그 문제가 풀 수 있는 문제라면 시간이 아무리 많이 걸려도, 계산 과정이 아무리 복잡해도 그 수학자는 문제를 풀 수 있다. 튜링이 증명한 바에 따르면, 뛰어난 수학자만 풀 수 있는 어려운 문제라도, 두루마리 위에 세세하게 적혀 있는 풀이 규칙에 따라 꼼꼼히 계산하면 별로 머리가 좋지 않은 사람도 그 문제를 풀 수 있다. 게다가 튜링은 유한 상태 기계가 그 사람을 대신할 수 있음도 증명했다.
암달의 법칙(Gene Amdahl's law)
7장. 컴퓨터의 속도: 병렬 컴퓨터 중에서
이러한 비효율성 문제를 가장 잘 공식화한 것이 '암달의 법칙'이다. 이 법칙을 알아낸 컴퓨터 설계자 진 암달(Gene Amdahl)은 1960년대에 이 법칙을 발표했다. 암달의 주장은 다음과 같다. 병렬 처리 과정에는 한 번에 한 프로세서만 수행할 수 있는 순차적인 연산 과정이 포함되어 있을 수밖에 없다. 그리고 순차적인 연산 과정이 딱 10퍼센트뿐이어도, 나머지 90퍼센트의 속도를 아무리 증가시켜도 전체적으로 볼 때 연산 속도는 10분의 1 이상 증가할 수 없다. 90퍼센트의 작업을 일사천리로 수행하고 있는 프로세서들이라고 하더라도 10퍼센트의 작업을 붙들고 끙끙대는 단 1개의 프로세서가 일을 마칠 때까지 하염없이 기다리고 있을 수밖에 없는 것이다. 이 주장대로라면 1,000 개의 프로세서가 연결된 병렬 컴퓨터는 너무나 비효율적인 것이다. 왜냐하면 이 컴퓨터의 속도는 단 1개의 프로세서로 구성된 컴퓨터보다 고작 10배밖에 안 빠르기 때문이다.
암달의 법칙의 결점
7 컴퓨터의 속도: 병렬 컴퓨터 중에서
…
암달의 주장에 어떤 결점이 있었는지 이제 와서야 이해하게 되었다. 연산 부분 가운데 10 퍼센트 정도는 직렬일 수밖에 없다는 그 가정에 오류가 숨어 있었다. 이 판단은 그럴듯해 보이지만 대부분의 대형 컴퓨터에서는 해당되지 않음이 판명되었다. 병렬 프로세서가 사용되는 방식을 오해한 데서 올바르지 못한 직관이 생겨난 것이다. 문제의 핵심은 계산 임무를 프로세서 사이에 분배하는 방법을 찾는 일이었다. 처음에는 각 프로세서에 각각 다른 일을 맡기는 방법이 최상인 듯했다. 이 계획은 어느 정도까지는 통했지만, 한 직업을 여러 명에게 분배할 때 생기는 골치 아픈 문제와 같은 어려움을 겪었다.
…
병렬 컴퓨터를 좀 더 효율적으로 작동시키기 위해 각 프로세서마다 데이터의 각기 다른 부분에서 비슷한 작업을 수행하도록 했다. 소위 이러한 데이터 병렬 분할(data parallel decomposition)기법은 울타리에 페인트를 칠할 때 각 작업자가 구역을 나누어 칠하는 방식과 같다.
- 프로세서가 각기 다른 일을 하게 하는 게 아니라, 같은 일을 조각으로 나누어 각 프로세서가 처리하게 하는 방법을 쓰면 암달의 법칙을 극복할 수 있다.
- 예: 이미지 처리 작업에서 각 프로세서별로 이미지의 각기 다른 부분을 처리하도록 시킨다.
- 이렇게 하면 프로세서 개수의 증가와 속도의 증가가 거의 비례하게 된다.