Computer Cluster
- massive parallelism
- High availability(HA)
- 하나가 망가져도 괜찮음
- 병렬
- low-cost servers, cost-effectiveness, scalability, HA features
- 저렴한 컴퓨터를 여러개 씀
- Homogeneity (여러종류 아니고 통일)
Cluster Family Classification
- computer clustsers
- high availability clusters
- load-balancing clusters
- single virtual machine, middleware
CUDA
- 병렬 컴퓨팅 아키텍쳐 by NVDIA
- Concurrently(동시에), 큰 문제를 작은 것들로 나누어 해결
task parallelism
data parallelism
- data partitions (block, cycle)
GPU
CUDA의 Heterogeneous Architecure
- CPU(host)와 GPU(device)를 모두 사용함
- Straming Multiprocessors
- Single Instruction Multiple Thread
- 각 쓰레드는 register state가지고, 각 쓰레드는 특정 범위내에서 독립적
global : CPU(호스트)에서 호출되지만 GPU의 멀티코어에서 실행됨
<<< >>> : 함수가 GPU에서 실행되게함. <<<1,10>>> 이거는 쓰레드10개
CUDA programming structure
- GPU 메모리 할당
- 데이터를 CPU에서 GPU로 Copy
- CUDA 커널이 program-specific computation 수행
- 데이터를 GPU에서 CPU로 다시 Copy
- GPU 메모리 destroy