Abstract: The running times of some sequential programs could be greatly reduced by converting and running its parallelizable, time dominant code on a massively, parallel processor architecture. Example program application areas include: bioinformatics, molecular dynamics, video and image processing, signal and audio processing, medical imaging, and cryptography. A low cost, low power, parallel computing platform for running these types of algorithms/applications is the graphics processor unit (GPU). Speedups of a factor in the tens can be realized for some of these applications.

However, writing or converting over a program into a parallel language, such as NVIDIA’s CUDA or Kronos Group’s OpenCL, can be a very daunting, complex, and error prone task. The optimum solution would be to create a tool that can automatically convert candidate sequential programs into optimized, parallel code. However, creating a purely autonomous parallelizing compiler to perform this conversion has not been met with much success to date, due primarily to the complexity of the task. There are partly autonomous-partly programmer assisted tools, in the form of parallel compiler directive based languages to give the compiler “hints” about where to find the parallelism. This method has recently gaining advancement and acceptance to some degree. But, until there are major advancements in both semi and fully automated sequential to parallel code converters, the only way to get the most optimized solution is by programmers performing this conversion themselves. Thus, this paper addresses the need for a parallel code visualization tool that would greatly aid programmers with this task.

Author/s: Peter J. Zeno
Institution/s: Department of Computer Science and Engineering, University of Bridgeport
Article: Read the Full Article (pdf)
Source/Type: ASEE 2014 Zone I Conference