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.
KeywordsOpenMP Automatic parallelization Data dependency C programming Lex and Yacc Language
- 4.Levine, J.R., Mason, T., Brown, D.: lex & yacc O’Reilly & Associates. Sebastopol (1990)Google Scholar
- 5.Chapman, B., Jost, G., Van Der Pas, R.: Using OpenMP: portable shared memory parallel programming, vol. 10. MIT press, Cambridge (2008)Google Scholar
- 6.Pugh, W., Wonnacott, D.: Eliminating false data dependences using the omega test. In: ACM SIGPLAN Notices, vol. 27, pp. 140–151. ACM (1992)Google Scholar
- 7.Kyriakopoulos, K., Psarris, K.: Efficient techniques for advanced data dependence analysis. In: Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques, PACT 2005, pp. 143–156, Washington, DC, USA. IEEE Computer Society (2005)Google Scholar
- 12.Pugh, W.: The omega test: a fast and practical integer programming algorithm for dependence analysis. In: Proceedings of the 1991 ACM/IEEE Conference on Supercomputing, Supercomputing 1991, pp. 4–13, New York, NY, USA. ACM (1991)Google Scholar