구현 주제

이 글에서는 ParallelFor함수를 사용해 병렬처리를 가속화 하는 법을 다룹니다.

이런 사람이 읽으면 좋아요

내용

먼저 이 영상을 한번 보시죠.

https://youtu.be/M1e9nmmD3II?si=nqI52Gpy1BkMychq

사실 30분이 넘는 영상이라 다 보시려면 시간이 필요합니다.

인스턴트 하게 글을 읽기에는 적합하지가 않죠. 그래서 아래에 나름대로 요약본을 적어놓겠습니다.

  1. 옛날에는 단일 스레드로 게임을 만들었다.
  2. CPU들이 멀티코어를 지원하면서 성능을 위해 주요 기능(로직과 렌더링등)을 스레드로 분할하여 관리하는 방식이 도입되었다.
  3. 하지만 이러한 방식은 가용 스레드 수가 늘어날수록 대응이 불가능해진다.
  4. 그래서 작업 단위로 스레드를 만들어 처리하고 합치는 잡 시스템, 혹은 태스크 시스템 이라는 멀티스레드 기법이 탄생했다. (C#의 Parallel.For나 CUDA등등)

정말로 간단하죠?

이 태스크 시스템이라는 놈을 활용하면 CPU를 최대한으로 활용하여 성능을 뽑아낼 수 있는 것입니다.

그리고 언리얼에도 이런 기능을 지원합니다! 바로 ParallelFor이죠.