728x90

시간 측정

- 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처럼 처리

 

 

 

 

 

300x250

+ Recent posts