일을 여러 명이 나눠서 하면 무조건 더 빠를까
여러 프로세서가 동시에 일하는 병렬 알고리즘은 단순히 일꾼을 늘린다고 처리 속도가 비례해서 빨라지지 않는다. 일꾼 간의 복잡한 소통과 조율 과정에서 발생하는 오버헤드라는 병목 현상이 생기기 때문이다.
흔히 일을 여러 명이 나눠 하면 효율적일 거라 생각하지만, 컴퓨터 세계에서는 일을 배분하고 결과를 합치는 과정에서 예상치 못한 시간이 소요됩니다. 마치 요리사 10명이 좁은 주방에 모이면 서로 부딪치느라 요리 속도가 오히려 느려지는 것과 비슷한 이치입니다. 그래서 개발자들은 프로세서 수를 늘릴 때마다 자원 소모가 어떻게 변하는지 정교하게 계산해야 합니다. 적절한 조율이 없다면 오히려 혼자 하는 것보다 못한 결과를 초래할 수도 있습니다.