여러 주방, 진짜 동시
주방이 여럿이면 번갈아가 아니라 같은 순간에 진짜로 함께 일해요.
주방이 하나가 아니라면
지금까지는 주방이 하나였어요. 일꾼 한 명이 이 일 조금, 저 일 조금 빨리 번갈아 했죠.
그런데 주방이 두 개, 세 개 있다면 어떨까요. 일꾼도 그만큼 있어서, 각자 자기 주방에서 동시에 요리해요. 번갈아가 아니라, 같은 순간에 진짜로 여럿이 일하는 거예요.
컴퓨터의 이 "여러 주방"을 코어라고 불러요. 코어가 여럿이면, 여러 일을 같은 순간에 정말 함께 처리할 수 있어요.
요즘 휴대폰이나 노트북이 4코어, 8코어라고 적어두는 것도, 그냥 주방이 몇 개인지 세어 둔 거예요.
주방이 하나면 번갈아, 여럿이면 같은 순간에 진짜 동시
코어가 여럿이면 여러 일을 같은 순간에 정말로 함께 처리해요.
진짜로 같이, 그냥 빨리 번갈아
앞에서 한 일꾼이 빨리 번갈으면 동시에 하는 것처럼 보인다고 했어요. 그건 착시였어요. 실제론 한 순간에 한 가지만 하고 있었죠.
주방이 여럿이면 다릅니다. 같은 한 순간을 들여다봐도, 이 주방에서도 저 주방에서도 진짜로 동시에 일이 진행돼요. 번갈아가 아니에요.
그래서 차이가 생겨요. 착시 동시는 빨라 보일 뿐이고, 진짜 동시는 같은 시간에 정말 더 많은 일을 끝내요.
한 주방을 아무리 빨리 번갈아도 실제로 끝내는 총량은 늘지 않고 나눠 쓸 뿐이지만, 주방이 늘면 처리할 수 있는 총량 자체가 커져요.
한 주방의 빠른 번갈음은 착시, 여러 주방은 실제 동시
한 코어의 번갈음은 동시처럼 보일 뿐이고, 여러 코어는 정말 같이 진행돼요.
주방을 늘려 봐요
끝내야 할 일이 잔뜩 쌓여 있어요. 주방 수를 직접 바꿔 봐요.
주방이 하나면 일을 하나씩 차례로 처리해요. 주방을 늘리면 여러 일이 동시에 처리돼서, 같은 양을 더 빨리 끝내요.
주방 둘이면 대략 절반 시간, 넷이면 더 짧게요. 직접 늘려보면서, 쌓인 일이 얼마나 빨리 줄어드는지 봐요.
그래서 사진 여러 장을 한꺼번에 바꾸거나 영상을 만드는 무거운 일도, 조각으로 나눠 여러 주방에 뿌리면 훨씬 빨리 끝나요.
주방 수를 바꿔가며 같은 일이 얼마나 빨리 끝나는지 봐요
주방이 많을수록 같은 일을 더 빨리 끝내지만, 곧 한계도 만나요.
두 배라고 두 배 빠르진 않아요
주방을 두 배로 늘리면 두 배 빨라질 것 같죠. 그런데 늘 그렇진 않아요.
어떤 일은 쪼갤 수가 없어요. 반죽이 부풀기를 기다리는 동안엔 주방이 열 개라도 더 빨라지지 않아요. 또 일꾼들이 같은 재료 하나를 동시에 쓰려고 하면 서로 기다려야 해요.
그래서 주방을 늘려도 처음엔 쭉 빨라지다가, 어느 순간부터는 늘린 만큼 빨라지지 않아요. 나눌 수 있는 일이 한정돼 있으니까요.
그래서 아무리 주방을 늘려도, 끝까지 쪼갤 수 없는 그 부분이 전체 속도의 천장을 정해 버려요.
쪼갤 수 없는 일과 서로 기다림 때문에, 코어를 늘려도 한계가 있다
코어를 늘리면 빨라지지만, 쪼갤 수 없는 일이 있어 무한히 빨라지진 않아요.
한 장으로 정리해요
셋만 기억하면 돼요.
첫째, 코어가 여럿이면 진짜로 동시에 일해요. 한 일꾼이 빨리 번갈는 착시가 아니라, 여러 주방에서 같은 순간에 함께요.
둘째, 그래서 같은 일을 더 빨리 끝내요. 일을 나눠 여러 주방에 맡기니까요. 셋째, 그래도 한계가 있어요. 쪼갤 수 없는 일과 서로 기다림 때문에, 코어를 두 배 늘려도 딱 두 배 빨라지진 않아요.
결국 얼마나 빨라지느냐는 주방 수보다, 그 일을 얼마나 잘게 나눌 수 있느냐에 달려 있어요.
여러 코어는 진짜 동시, 그래서 빠름, 단 한계 있음