더북(TheBook)

컴퓨터 시스템에 처리 자원이 두 개 이상 있다고 해도 확장성이 그리 좋지 않다.

또 다른 방법은 문제를 서로 독립적인 여러 작업으로 나누어 두 개 이상의 처리 자원에 이를 분배한 다음 동시에 실행하는 것이다. 처리 자원이 많고 분해한 작업의 수가 적을수록 처리 속도가 빨라진다. 이러한 전략이 병렬 컴퓨팅의 핵심이다. 이 점에 대해서는 8장과 12장에서 더 자세히 설명하겠다.

이 문제에서 병렬 실행을 적용할 수 있을까? 슈퍼 해독 장치에는 여러 코어를 가진 최고급 사양의 CPU가 달려 있다. 그러니 첫 번째 조건, 병렬 실행을 위한 하드웨어는 갖추고 있는 셈이다.

그럼 이 문제를 독립적인 작업으로 분해할 수 있을까? 패스워드를 하나하나 확인하는 과정을 작업으로 분할하면, 서로 독립적인 작업이 가능하다. 특정 패스워드를 확인하기 전에 먼저 확인해야 하는 후보 같은 것은 없으므로 진짜 패스워드를 찾을 때까지 어느 패스워드 후보를 먼저 처리해도 무방하다. 됐다!

하드웨어 지원부터 작업 독립성까지 병렬 컴퓨팅을 적용하는 데 필요한 모든 조건이 달성됐다. 새로운 프로그램을 설계할 차례다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.