시간 측정
- time ./실행파일명
ex. time ./13_serial_loop.x
- 13_serial_loop는 순차 프로그램, 15_parallel_for 작업분할지시자를 사용한 병렬 프로그램
-> 20번 루프돌리는 동안 13은 0.045s 가 걸렸으나 15는 0.029s가 소요
atomic을 사용하는 경우
- 동기화를 위해 하나의 스레드만 사용하도록 막음
=> 병렬 처리의 성능을 크게 낮춤
* ciritical은 함수 범위 atomic은 한 줄연산 범위
reduction
- #pragma omp for reduction (+:sum)
=> 각 스래드들끼리 local sum을 구해서 다 더해라
* atomic 처럼 한 스레드마다 다 돌떄까지 기다리지 않음. 단 전체가 로컬 sum을 구하도록 기다림
- sum이 shared 변수 -> 내부적으로 private처럼 처리
'컴퓨터과학 > 기타' 카테고리의 다른 글
openmp - 17. pi계산에서의 병렬화를 통한 성능 개선 (0) | 2020.07.29 |
---|---|
openmp - 16. reduction과 factorial (0) | 2020.07.29 |
openmp - 14. 동기화 (0) | 2020.07.29 |
openmp - 13. 순차/병렬 내적 연산 (0) | 2020.07.29 |
openmp - 12. 병렬 루프(작업분할지시어) (0) | 2020.07.29 |