Parallel Processing - A Case Study on Automatic Parallelization Abdul Muiz Abdul Ghafar #1, Mohamed Faidz Mohamed Said #2 # Faculty of Computer & Mathematical Sciences, Universiti Teknologi MARA 70300 Seremban, Negeri Sembilan, MALAYSIA 1 muizghafar123@gmail.com 2 mohdfaidz@uitm.edu.my Abstract—Something is parallel if there is an exact level of independence in the order of processes. In other words, it does not matter in what order those processes are executed. Automatic parallelization is an automatic transformation of serial programs into equivalent programs by a compiler. Target may be a multi-core processor namely concurrentization, a vector processor namely vectorization, or a cluster of loosely coupled distributed memory processors namely parallelization. Parallelism mining progression is usually a conversion of source-to-source. It necessitates dependence analysis to identify the dependence between codes. Application of available parallelism is also a challenge. The iterations of a 2-nested loop could be investigated whether they could all be run in parallel. In this paper, a relative study of present and past methods for automatic parallelization is presented. It comprises of methods like array analysis, commutativity analysis, scalar analysis and other similar techniques. The motive of this paper is to provide basic understanding of the methods of automatic parallelization and how these methods are currently being used to generate compilers that automatically develop parallelized applications. Furthermore, the challenges confronted by automatic parallelization are also debated and presented. Keywords: parallelism, automatic parallelization, compilers REFERENCES [1] Y. N. Srikant, Automatic Parallelization - Part 1. Bangalore: Department of Computer Science, Indian Institute of Science, 2011, pp. 1-6. [2] V. D. P. Ruud, Basic Concepts in Parallelization. California: Oracle Solaris Studio, 2010, pp. 1-6. [3] M. Mehrara, "Static and Dynamic Parallelization: Challenges and Opportunities", Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications, pp. 5-8, 2011. [4] D. R. Chakrabarti and P. Banerjee, "Global Optimization Techniques for Automatic Parallelization of Hybrid Applications", Proceedings of the 15th International Conference on Supercomputing, pp. 166-180, 2001. [5] K. S. McKinley, "Automatic Parallelization", Automatic and Interactive Parallelization, pp. 12-32, 1994. [6] C. Bastoul, "Efficient Code Generation for Automatic Parallelization and Optimization", Proceedings of the Second International Conference on Parallel and Distributed Computing, 2003. [7] N. DiPasquale, V. Gehlot, and T. Way, "Comparative Survey of Approaches to Automatic Parallelization", MASPLAS’05, pp. 1-6, 2005. [8] K. Molitorisz, J. Schimmel, and F. Otto, "Automatic Parallelization using AutoFutures", Multicore Software Engineering, Performance, and Tools, 2012. [9] T. Brandes, "The Importance of Direct Dependences for Automatic Parallelization", Proceedings of the 2nd International Conference on Supercomputing, pp. 408-417, 2012. [10] M. Sohal and R. Kaur, "Automatic Parallelization: A Review", International Journal of Computer Science and Mobile Computing, vol. 5, no. 5, pp. 17-21, 2016. [11] N. Bliss, "Addressing the Multicore Trend with Automatic Parallelization", Lincoln Laboratory Journal, vol. 17, pp. 187-198, 2007. [12] R. Eigenmann, D. Padua, and J. Hoeflinger, "New Transformation Techniques: Performance and Relevant Code Patterns", On the Automatic Parallelization of the Perfect Benchmarks, pp. 4-20, 1998. [13] K. Stock, L. N. Pouchet, and P. Sadayappan, "Automatic Transformations for Effective Parallel Execution on Intel Many Integrated Core", TACC-Intel Highly Parallel Computing Symp, pp. 1-6, 2001. [14] U. Bondhugula, M. Baskaran, A. Hartono, S. Krishnamoorthy, J. Ramanujam, A. Rountev, and P. Sadayappan, "Towards Effective Automatic Parallelization for Multicore Systems", Parallel and Distributed Processing, 2008. IPDPS 2008. IEEE International Symposium, 2008. [15] T. B. Jablin, "Pipeline Parallelism", Automatic Parallelization for GPUs, pp. 10-13, 2013. [16] A. Muiz, "171129 CSC580 C1 AMAG Youtube", 2017. [Online]. Available:https://www.youtube.com/watch?v=sG0JLcH9Nv4. [Accessed: 10-Dec-2017].