응 주말과 조금 전에 구현한 결과를 종합하면 결과가 이래.


최초구현: 잘못 만들었어.

sequential time: 737.1136424400001 ms

parallel time: 1233.8495565199999 ms

speedup: 0.5974096586937113


어제 성공한 구현: 점수는 나오는데 뭔가 좀 찝찝한 느낌이 들었어.

sequential time: 3278.6422397600004 ms

parallel time: 696.74279492 ms

speedup: 4.705670820946851


조금 전에 대폭 개선한 구현: 이게 출제자가 원래 의도한 수준 같아.

sequential time: 274.6181388 ms

parallel time: 198.56562839999998 ms

speedup: 1.3830094413258485


벤치마크 방법은 워밍업으로 20 ~ 40회 사이로 실행하고, 측정용으로 25회 실행하게 되어 있어.


마지막 구현이 별로 향상이 안된 것 같은 느낌도 있는데, 몇 일 전에 누가 물어봐서 강사가 적어놓은 설명을 보면, 


이 방식으로 만들면 알아서 CPU 코어 수에 비례해서 속도 향상이 올라가게 되어있대.


즉, 내 컴퓨터가 2코어 CPU 를 써서 별로 향상이 안된거야.


4코어 CPU 에서 돌린 결과는 이래.

sequential time: 240.60596712000003 ms

parallel time: 87.45751372000001 ms

speedup: 2.751118307459701


참으로 오묘한 병렬처리야.