Automatic Parallelization of C Code Using OpenMP

Automatic parallelization is necessary for all system. Every person wants the program to execute as soon as possible. Now Days, programmer want to get run faster the sequential program. Automatic parallelization is the greatest challenge in now days. Parallelization implies converting the sequential code to parallel code to getting better utilization of multi-core processor. In parallelization, multi-core use the memory in sharing mode or massage passing. Now day’s programmers don’t want to take extra overheads of parallelization because they want it from the compiler that’s called automatic parallelization. Its main reason is to free the programmers from manual parallelization process. The conversion of a program into parallelize form is very complex work due to program analysis and an unknown value of the variable during compile time. The main reason of conversion is execution time of program due to loops, so the most challenging task is to parallelize the loops and run it on multi-core by breaking the loop iterations. In parallelization process, the compiler must have to check the dependent between loop statements that they are independent of each other. If they are dependent or effect the other statement by running the statement in parallel, so it does not convert it. After checking the dependency, test converts it into parallelization by using OpenMP API. We add some line of OpenMP for enabling parallelization in the loop.

[1]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[2]  Konstantinos Kyriakopoulos,et al.  An experimental evaluation of data dependence analysis techniques , 2004, IEEE Transactions on Parallel and Distributed Systems.

[3]  William Pugh,et al.  Eliminating false data dependences using the Omega test , 1992, PLDI '92.

[4]  Zhiyuan Li,et al.  An Efficient Data Dependence Analysis for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[5]  David A. Padua,et al.  On the Automatic Parallelization of the Perfect Benchmarks , 1998, IEEE Trans. Parallel Distributed Syst..

[6]  Konstantinos Kyriakopoulos,et al.  Efficient techniques for advanced data dependence analysis , 2005, 14th International Conference on Parallel Architectures and Compilation Techniques (PACT'05).

[7]  Ron Cytron,et al.  Interprocedural dependence analysis and parallelization , 1986, SIGP.

[8]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[9]  Kleanthis Psarris The Banerjee-Wolfe and GCD Tests on Exact Data Dependence Information , 1996, J. Parallel Distributed Comput..