HOW TO RUN CODE ON A LINUX SERVER OR COMMAND LINE GIVEN YOU HAVE ENOUGH GPU RESOURCES
SUMMARY OF RUN TIME WITH INCREASING RADIUS BRUSHES
- Sequential Execution Plot
- GPU (Using CUDA) vs OpenMP
ANALYSIS OF RESULT
`The longest time taken for the execution of HighRes was about 9 seconds for a radius brush of 40 with GPU programming. This is a significant decrease in time compared to the sequential execution which took almost 26 minutes for the same radius brush of 40. It is noticeable here that the GPU parallelization technique offers a great improvement to running programs that might require lots of memory and CPU time. One thing to note however was the execution time at a radius brush of 0; the execution time for the sequential program was a tiny bit faster than that of the GPU program, however, this is due to the fact that lots of blocks and threads (non-useful due to brush size of 0) were created for the GPU execution whereas the sequential execution just ran the skeleton program. But we see a better improvement when the brush size increases slightly to 10. The GPU execution time was a lot faster than the sequential execution and likewise for a radial brush of 20. The openMP execution is still better with its timing relative to the sequential execution but the GPU execution showed the fastest speed among all three different techniques. In conclusion, GPU execution > OpenMP execution > sequential execution in terms of the time they take to run programs that require lots of CPU time.