Parallel Computing (병렬 처리)

  • 하나의 문제를 여러개의 computing resources를 이용하여 푸는 것.

※ resources: Multiple core, computing nodes 등...

 


Parallel vs Concurrent computing

  • Concurrent computing: 여러개의 작업을 동시에 수행하는 것.

 


Why Parallel Computing??

  • 빠르고 정확한 연산을 위해
  • 하지만 어떤 연산을 하냐에 따라 CPU로 돌리는게 더 빠를수도 있다.

 


간단한 Parallel Computing 비교

 

Parallel_01

Parallel_01에서 보면 24개의 숫자를 3개씩 나누어 8개의 코어로 병렬 연산을 한 후에,

마지막으로 이 값들을 다 더해주는 것입니다.

※ 1+4+3, 9+2+8, ...

 

그렇다면 여기에서 일어나는 총 연산 수는

2(3묶음씩 병렬로 처리했기 때문에) + 7 = 9라는 연산 횟수를 얻을 수 있습니다.

※ 1 + 4 + 3 -> +연산이 2번 일어난다.

※ 8 + 19 + 7 + 15 + 7 + 13 + 12 + 14 -> +연산이 7번 일어난다.

 

이제 개선된 병렬 연산을 보겠습니다.

Parallel_02

여기서는 마지막에 더해주는 연산을 하나의 코어에서 실행하지 않고

여러개의 코어를 사용한 것입니다.

총 연산 수를 계산해보면,

2 + 1 + 1 + 1 = 5 라는 연산 횟수를 얻을 수 있습니다.

 

물론 Parallel_01로 계산을 하면 연산 횟수를 줄일 수 있지만

Parallel_02를 이용하여 계산을 하면 연산 횟수를 더욱 줄일 수 있다는 것을 알 수 있습니다.

 

 

※ 출처:

https://www.youtube.com/watch?v=si3B4mYVWrE&list=PLBrGAFAIyf5pp3QNigbh2hRU5EUD0crgI&index=1 

'Cuda' 카테고리의 다른 글

06_Where_is_Thread_CUDA  (0) 2021.08.30
05_How_Kernel_Works_CUDA  (0) 2021.08.30
04_Vector_Sum_CUDA  (0) 2021.08.27
03_Hello_CUDA_(Colab에서 CUDA 설정하기)  (0) 2021.08.26
02_용어정리_CUDA  (0) 2021.08.26

+ Recent posts