Changes

Jump to: navigation, search

Team NP Complete

118 bytes added, 23:26, 21 December 2017
Parallelized and Dynamic Performance
[[File:after_dynamic_histo.png|1000px|center|Dynamic Histogram]]
 
As the analyses show, that loop now shows more efficient CPU usage. It also gave a slightly higher, stabilized FPS.
=Conclusion=
After countless hours programming this simulation, incorporating OpenMP into the finished program did not prove to be very difficult. The most challenging part of including it was identifying the bottleneck for the performance, where CPU idle time was occurring. After the Fourier Transformation Function was identified as the cause of the bottleneck, the loop-carried dependency was factored out and an OpenMP for loop was added. After observing that there was still a considerable amount of CPU idle time, the program was changed to include a dynamic version of the OpenMP for loop, which indicated to the program to dynamically load-balance threads, as opposed to wasting time creating a (statically) set amount of threads that it may not have much to actually compute. After the dynamic scheduling was added, the program jumped to a consistent efficiency and run time.
25
edits

Navigation menu