An Automatic Transformer from Sequential to Parallel Java Code
-
Published:2023-09-08
Issue:9
Volume:15
Page:306
-
ISSN:1999-5903
-
Container-title:Future Internet
-
language:en
-
Short-container-title:Future Internet
Author:
Midolo Alessandro1ORCID, Tramontana Emiliano1ORCID
Affiliation:
1. Dipartimento di Matematica e Informatica, University of Catania, 95125 Catania, Italy
Abstract
Sequential programs can benefit from parallel execution to improve their performance. When developing a parallel application, several techniques are employed to achieve the desired behavior: identifying parts that can run in parallel, synchronizing access to shared data, tuning performance, etc. Admittedly, manually transforming a sequential application to make it parallel can be tedious due to the large number of lines of code to inspect, the possibility of errors arising from inaccurate data dependence analysis leading to unpredictable behavior, and inefficiencies when the workload between parallel threads is unbalanced. This paper proposes an automatic approach that analyzes Java source code to identify method calls that are suitable for parallel execution and transforms them so that they run in another thread. The approach is based on data dependence and control dependence analyses to determine the execution flow and data accessed. Based on the proposed method, a tool has been developed to enhance applications by incorporating parallelism, i.e., transforming suitable method calls to execute on parallel threads, and synchronizing data access where needed. The developed tool has been extensively tested to verify the accuracy of its analysis in finding parallel execution opportunities, the correctness of the source code alterations, and the resultant performance gain.
Subject
Computer Networks and Communications
Reference44 articles.
1. Yang, C., Lu, T., Yan, S., Zhang, J., and Yu, X. (2022). N-Trans: Parallel Detection Algorithm for DGA Domain Names. Future Internet, 14. 2. Murugappan, M., Thomas, J.V.J., Fiore, U., Jinila, Y.B., and Radhakrishnan, S. (2021). COVIDNet: Implementing Parallel Architecture on Sound and Image for High Efficacy. Future Internet, 13. 3. Iqbal, U., Abosekeen, A., Georgy, J., Umar, A., Noureldin, A., and Korenberg, M.J. (2021). Implementation of Parallel Cascade Identification at Various Phases for Integrated Navigation System. Future Internet, 13. 4. Kaddoura, S., Haraty, R.A., Al Kontar, K., and Alfandi, O. (2021). A Parallelized Database Damage Assessment Approach after Cyberattack for Healthcare Systems. Future Internet, 13. 5. Herlihy, M., Shavit, N., Luchangco, V., and Spear, M. (2020). The art of Multiprocessor Programming, Morgan Kaufmann.
|
|