https://www.youtube.com/shorts/ZHt5QEz7s7g
위의 쇼츠를 보다가 생각이 들어 적어보게 되는 포스팅이다.
스타크래프트와 빠른무한, 자원 채취 등의 개념에 대해 이미 알고 있는 전제하에 진행하겠다.
위 영상에서의 두 가지의 실험에서 결과는 다음과 같다.
<실험 1>
통제된 변인 : 미네랄 50 덩이 고정. 일꾼 50마리 고정.
실험군: 본진 건물 - 미네랄 거리 제한이 적용된 상태에서 일꾼 50기의 미네랄 채취
=> 5296
대조군: 빠른 무한 맵의 기본 상태로 본진 건물 - 미네랄이 인접한 상태에서의 일꾼 50기의 미네랄 채취
=> 7128

<실험 2>
통제된 변인 : 미네랄 50 덩이 고정.
실험군: 본진 건물 - 미네랄 거리 제한이 적용된 상태에서 일꾼 80기의 미네랄 채취
=> 7760
대조군: 빠른 무한 맵의 기본 상태로 본진 건물 - 미네랄이 인접한 상태에서의 일꾼 50기의 미네랄 채취 (실험1 때의 대조군과 동일)
=> 7128

사실 이 실험에서의 목적이나 의의는 역시나 건물이 깨져 미네랄 제한 거리에 다시 지어 자원을 수급하게 될 경우, 기본적으로 빠른 무한 맵의 본진 건물 - 미네랄이 인접한 상태보단 떨어지지만 일꾼 수를 늘리는 것으로 어느 정도 보완이 된다는 것이다.
다만, 필자는 갑자기 이런 생각이 들었다.
가용한 자원 (여기에서는 미네랄 자원이 아니라 일꾼을 가리키는 의도임.)이 충분하고 여유롭더라면, 의도적으로 태스크에 지연을 추가하여 파이프라이닝으로 전환하는 것이 throughput에는 이득인 방향으로 만들 수 있다는 결론 아닌가?
기본적으로 스타크래프트에서 일꾼의 태스크 상황은 다음과 같이 정의 가능하다.
SCV의 Task
(1) 미네랄 광석 앞에서 미네랄 캐기
(2) 캔 미네랄을 커맨드 센터로 전달하기 위해 이동
(3) 캔 미네랄을 커맨드 센터에 주입
(4) 다시 미네랄을 캐기 위해 미네랄 광석 위치로 이동
이 일련의 과정의 반복
이 때, 대조군, 즉 기본 빠른 무한 맵에서의 자원 채취와 관련해서 태스크는 위의 반복되는 일련의 과정 중 (2)번과 (4)번 과정이 생략된 것으로 볼 수 있다.
즉, 다시 정리하면,
A. 미네랄 제한 거리에서의 SCV의 Task
(1) 미네랄 광석 앞에서 미네랄 캐기
(2) 캔 미네랄을 커맨드 센터로 전달하기 위해 이동
(3) 캔 미네랄을 커맨드 센터에 주입
(4) 다시 미네랄을 캐기 위해 미네랄 광석 위치로 이동
이 일련의 과정의 반복B. 기본 빠른 무한맵에서의 SCV의 Task
(1) 미네랄 광석 앞에서 미네랄 캐기
(2) 캔 미네랄을 커맨드 센터에 주입
이 일련의 과정의 반복
그런데 생각해보니, 이런 식으로 SCV 입장에서 태스크를 정의하는 관점이 아니라 미네랄 광석 관점에서는 다음과 같이 볼 수 있다.
미네랄 채취하는 데 걸리는 시간('미네랄 광석 앞에서 미네랄 캐기' 과정)을 p,
캔 미네랄을 커맨드 센터에 주입하는 데 걸리는 시간 ('캔 미네랄을 커맨드 센터에 주입' 과정)을 q,
미네랄-본진 거리를 편도 이동하는 데 걸리는 시간을 r이라고 하자.
기본 빠른 무한맵 세팅일 경우,
미네랄 광석 입장에서 한 일꾼에게 할당되면 p의 시간동안 점유된 후에 q의 시간동안 idle해진 이후 다시 반복될 것이다.
기본 빠른 무한맵
미네랄 덩이 : p 시간 동안 scv에게 점유 -> q 시간 동안 idle -> p시간 동안 점유 -> q 시간동안 idle -> ...
반면, 미네랄 제한 거리가 있는 경우, 일꾼 수와 미네랄 덩이가 일대일로 대응될 경우에는
미네랄 덩이 : p 시간 동안 scv에게 점유 -> q + 2 r 시간 동안 idle -> p시간 동안 점유 -> q + 2 r 시간동안 idle -> ...
위와 같이 정의되기 때문에 실험 1과 같은 퍼포먼스 차이가 존재한다.
이 때, 실험 2에서 일꾼의 수가 증가했을 때 무슨 차이가 존재하냐면,
미네랄 덩이는 일꾼의 점유를 벗어나자마자 대기 중이던 추가 일꾼에게 할당되기 때문에, 점유 시에는 동일하게 p의 시간동안 점유되지만, 항상 q + 2 * r의 시간을 대기하지 않고, 할당 대기 중인 일꾼이 있다면 곧바로 점유된다.
즉, 대조군의 기본 상태는 태스크가 Sequential 하게 처리되는 느낌이고,
미네랄 거리 제한이 존재하지만 일꾼이 더 추가된 경우는 태스크 자체는 거리 이동이라는 오버헤드가 존재하여 더 길지만 더 많은 일꾼들이 파이프라이닝처럼 처리되는 느낌을 이야기하고 싶었는데,
사실 맹점은 생각해보니 빠른 무한 상태로도 일꾼이 더 많다면 동일한 원리로 자원 채취량이 늘지 않나 싶다.
생각보다 쓸데없는 생각이었던 것 같지만..