반응형

강좌 17

병렬처리 개념 강좌: #3 암달의 법칙

병렬처리를 한다고 무조건 성능 향상이 되는 것은 아닙니다. 병렬처리를 하여 성능이 향상될 수 있는 부분이 존재할 때 성능이 향상될 수 있습니다. 병렬처리를 하여 성능이 향상되는 부분이란 쉽게 이야기 하여 처리를 여러 개의 코어에서 나누어 연산할 수 있는 부분을 의미합니다. 병렬처리를 통한 성능 향상은 전체 처리의 관점에서 보아야 합니다. 부분에서의 몇 백%의 성능 향상을 할지라도 그게 전체 처리에서의 몇 백%의 성능 향상을 의미하지는 않기 때문입니다. 그럼, 병렬처리를 통하여 어느 정도의 성능 향상을 가져올 수 있을까요? 이 문제에 대하여 이론적인 계산을 가능하게 하는 방법이 암달의 법칙입니다. 암달의 법칙은 연산의 P비율만큼만 병렬화가 가능하여 S만큼의 성능 향상이 있을 경우, 최대 속도 향상은 1 /..

강좌 2021.11.06

병렬처리 개념 강좌: #2 병렬처리가 대중화되는 배경

오래 전에는 프로세스에 코어라는 개념으로 이야기한다면 1개의 코어만을 가지고 있었습니다. 또한 여러 개의 프로세스를 가지는 경우는 서버나 워크스테이션 같은 고가의 컴퓨터에만 존재하였습니다. 이 때는 병렬 처리는 대중적이지 않았습니다. 하지만 하나의 프로세스에 N개의 코어를 가지는 컴퓨터가 대중화된 현재 시점에서는 멀티 코어를 활용하여 성능을 올리는 것이 점점 대중화되고 있습니다. 대표적으로 최신 게임 중에서 멀티 코어를 활용하여 성능을 올리는 것을 찾아보는 것은 그리 어렵지 않습니다. 잠시 병렬 처리의 대중화를 만들고 있는 멀티 코어가 CPU 구조에서 대세가 된 배경을 잠시 살펴보면 아래와 같습니다. CPU의 클럭이 발열과 추가적인 전기 소모 문제로 현재 이상의 높은 클럭으로 가기가 쉽지 않습니다. 또한..

강좌 2021.11.05

병렬처리 개념 강좌: #1 병렬처리의 개념

병렬처리 혹 다른 표현으로 멀티프로세스 프로그래밍이란 쉽게 이야기하여 하나의 프로그램을 하나의 프로세스가 아닌 N개의 멀티 프로세스를 이용하여 개발하는 것을 의미합니다. 이렇게 개발하는 이유는 여러 개의 프로세스를 동시에 활용하여 성능을 향상시키기 위함입니다. 참고로 최근에는 쓰레드 별로 프로세스를 할당하여 비슷하여 보이지만 기본적으로 하나의 프로세스에서 N개의 쓰레드를 실행하는 멀티쓰레드 와는 다른 개념입니다. 멀티 쓰레드 프로그래밍은 IO 관련 처리에서 비약적으로 성능을 향상시켜주는 데 비하여 멀티 프로세스 프로그래밍, 병렬 처리는 CPU 관련 처리에서 비약적으로 성능을 향상시켜줍니다.

강좌 2021.11.04
반응형