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
'컴퓨터과학 > 기타' 카테고리의 다른 글
openmp - 14. 동기화 (0) | 2020.07.29 |
---|---|
openmp - 13. 순차/병렬 내적 연산 (0) | 2020.07.29 |
openmp - 11. 배열에 스레드 번호 저장하기 (0) | 2020.07.29 |
openmp - 10. 스레드와 프로세스, 메모리 공간 (0) | 2020.07.29 |
openmp - 9. firstprivate, shared, private (0) | 2020.07.29 |