Parallel Computing (병렬 처리)
- 하나의 문제를 여러개의 computing resources를 이용하여 푸는 것.
※ resources: Multiple core, computing nodes 등...
Parallel vs Concurrent computing
- Concurrent computing: 여러개의 작업을 동시에 수행하는 것.
Why Parallel Computing??
- 빠르고 정확한 연산을 위해
- 하지만 어떤 연산을 하냐에 따라 CPU로 돌리는게 더 빠를수도 있다.
간단한 Parallel Computing 비교
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번 일어난다.
이제 개선된 병렬 연산을 보겠습니다.
여기서는 마지막에 더해주는 연산을 하나의 코어에서 실행하지 않고
여러개의 코어를 사용한 것입니다.
총 연산 수를 계산해보면,
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 |