728x90

pi 계산 순차 코드

- 실행결과 1.326s 소요

 

 

 

어떻게 고칠까

- for문이 로드가 걸릴거같다 -> 병렬 처리

- private 할지 shared할지 결정해야함 : x 는 private, sum은 누적이므로 reduction 사용

 

병렬화 결과

- 일단 사용할 스래드 갯수 5개로 설정

- sum은 각 스래드별로 계산후 다합칠것이므로 reduction

- x는 각 스래드마다 개별로 가져야하므로 private

 * private을 안하면 다른 스레드의 x값이 덮어씌워줄수 있음.

- 순차 코드에서 1.326s가 소요됬으나, 병렬 코드에서는 0.318s가 소요

 

 

* #pragma omp parallel 과 parallel for의 차이

- prallel만 있는 경우 { } 병렬영역을 괄호로 지정해주어야 함

- parallel for의 경우 #pragma 바로 아래의 for문에만 영향을 줌

300x250

'컴퓨터과학 > 기타' 카테고리의 다른 글

openmp - 19. 중첩 스레드  (0) 2020.07.30
openmp - 18. 병렬 블록, 포크 조인, 동기화 문제  (0) 2020.07.30
openmp - 16. reduction과 factorial  (0) 2020.07.29
openmp - 15. reduction  (0) 2020.07.29
openmp - 14. 동기화  (0) 2020.07.29

+ Recent posts