Automatic Code Parallelization with OpenMP task constructs
Manju Mathews, Jisha P Abraham · 2016
Multi-core processors are very common in the form of dual-core and quad-core processors. To take advantage of multiple cores, parallel programs are written. Existing legacy applications are sequential and runs on multiple cores utilizing only one core. Such applications should be either rewritten or parallelized to make efficient use of multiple cores. Manual parallelization requires huge efforts in terms of time and money and hence there is a need for automatic parallelization. Automatic Code Parallelizer using OpenMP automates the insertion of compiler directives to facilitate parallel processing on multi-core shared memory machines. The proposed tool converts an input sequential C source code into a multi-threaded parallel C source code. The tool supports multi-level parallelization with the generation of nested OpenMP constructs. The proposed scheme statically decomposes a sequential C program into coarse grain tasks, analyze dependency among tasks and generates OpenMP parallel code. The focus is on coarse-grained task parallelism to improve performance beyond the limits of loop parallelism. Due to the broad support of OpenMP standard, the generated OpenMP codes can run on a wide range of SMP machines and may result in a performance improvement.