728x90

병렬 루프 만들기

- 코드에서 실행 시간이 오래걸리는 부분에서 병렬화를 수행해서 시간을 줄여야함

 => 그런부분들이 루프문임 => 루프문을 병렬화 해야함

- openmp의 단점. 사용 가능한 노드 수가 제한됨(1개)

- 여러 노드를 사용해야할때 mpi를 사용해야함

 

 

단순 순차 루프문

 

 

병렬 루프문

- N은 20, 스레드는 4개

- i, tid, istart, iend를 private으로 사용

tid    istart    iend       output i

 0      0        5       -> 0 ~ 4

 1      5       10      -> 5 ~ 9

 2      10      15     -> 10 ~ 14

 3      15      20     -> 15 ~ 19

- 아래에 컴파일러 지시자로 작업을 분할해주는것과 결과는 동일하나 구현은 복잡함

 

 

 

 

 

간단해진 병렬 루프문

- #pragma omp for <- 작업 분할 지시어(핵심)

 => 4개의 스레드가 20개의 문자열 출력 작업을 분할해서 수행

 

 

 

300x250

+ Recent posts