ABSTRACT
Parallel computing deals with simultaneous computation of problems to speed up the total time required for serial computation. Many problems involving huge number of computations can be sub divided into smaller ones each performing some computation. However to obtain smaller fragments of computation requires dependency analysis among the sub-parts. Manually analyzing each computation for dependencies is a difficult task for developer.
In this paper, we are proposing graph based dependency analysis approach for parallelizing java programs. A program consists of sequence of statements, dependency analysis is done to check the ordering of statements in a program and also to identify various programming constructs which are dependent on each other. High level language program can be analyzed on the basis of data flow between variables and communication among functions. This study provides a method to parallelize input java code based on automated generation of dependence graph. Dependence graph depicts the connectivity between the programming constructs i.e variables and functions. When these dependencies are resolved then it is possible to split program into independent modules which can be executed in parallel with each other for achieving high performance.
- Alain Ketterlin Philippe Clauss. 2012. Profiling Data-Dependence to Assist Parallelization: Framework, Scope, and Optimization. IEEE/ACM 45th Annual International Symposium on Microarchitecture. DOI 10.1109/MICRO.2012.47. Google ScholarDigital Library
- Angeles Navarro, Francisco Corbera, Rafael Asenjo, Rosa Castillo, Emilio L. Zapata. 2012. A data dependence test based on the projection of paths over shape graphs. Department of Computer Architecture, University of Málaga, Elsevier. DOI:10.1016/j.jpdc.2012.08.004. Google ScholarDigital Library
- Dirk Beyer, Ashgan Fararooy. 2010. DepDigger: A Tool for Detecting Complex Low-Level Dependencies. In Program Comprehension (ICPC). IEEE 18th International Conference on. vol., no., pp. 40--41. DOI: 10.1109/ICPC.2010.52. Google ScholarDigital Library
- Gang Shu, Boya Sun, Tim A.D. Henderson, Andy Podgurski. 2013. JavaPDG: A New Platform for Program Dependence Analysis. In Software Testing, Verification and Validation (ICST). IEEE Sixth International Conference on. vol., no., pp. 408--415. DOI: 10.1109/ICST.2013.57. Google ScholarDigital Library
- M.A. Hossaina, U. Kabirb, M.O. Tokhi. 2002. Impact of data dependencies in real-time high performance computing. Microprocessors and Microsystems Elsevier. Volume 26, Issue 6, 10, Pages 253--26161. DOI: 10.1016/S0141-9331(02)00027-3.Google Scholar
- Jeanne Ferrante, Karl J. Ottenstein and Joe D. Warren. 1987. The Program Dependence Graph and Its Use in Optimization. Journal ACM Transactions on Programming Languages and Systems (TOPLAS). Vol. 9, No. 3, Pages 319--349. DOI 10.1145/24039.24041. Google ScholarDigital Library
- John Ye, Hui Yan, Honglun Hou, Tianzhou Chen. 2014. Potential thread-level parallelism exploration with superblock reordering. Springer. DOI: http://dx.doi.org/10.1007/014-0387-8.Google Scholar
- Lisa Cox, Dr. Harry S. Delugach. 2001. Dependency Analysis Using Conceptual Graphs. In Proceedings of the 9th International Conference on Conceptual Structures. ICCS. DOI: 10.1.1.8.1136.Google Scholar
- Mihai T. Lazarescu, Luciano Lavagno. 2012. Dynamic trace-based data dependency analysis for parallelization of C programs. In Source Code Analysis and Manipulation (SCAM), IEEE 12th International Working Conference on. vol., no., pp. 126--131. DOI: 10.1109/SCAM.2012.15. Google ScholarDigital Library
- Muhammad Sheikh Sadi, Linkan Halder and Seemanta Saha. 2013. Variable Dependency Analysis of a Computer Program. International Conference on Electrical Information and Communication Technology (EICT), IEEE. DOI 10.1109/EICT.2014.6777891.Google Scholar
- Ping Su, Chun Cao, Xiaoxing Ma and Jian L. 2013. Automated Management of Dynamic Component Dependency for Runtime System Reconfiguration. 20th Asia-Pacific Software Engineering Conference, IEEE. DOI 10.1109/APSEC.2013.66 Google ScholarDigital Library
- S. Prema, R. Jehadeesan, B. K. Panigrahi and S.A.V. Satya Murty. 2015. Dependency Analysis and Loop Transformation Characteristics of Auto-Parallelizers. In Parallel Computing Technologies (PARCOMPTECH), 2015 National Conference on. vol., no., pp. 1--6. DOI: 10.1109/PARCOMPTECH.2015.7084524.Google ScholarCross Ref
- Tatiana Vert, Tatiana Krikun, Mikhail Glukhikh. 2013. Detection of Incorrect Pointer Dereferences for C/C++ Programs using Static Code Analysis and Logical Inference. In Tools & Methods of Program Analysis (TMPA). vol., no., pp. 78--82. DOI: 10.1109/TMPA.2013.7163724.Google Scholar
- Trosky B, Callo Arias, Pieter van der Spek and Paris Avgeriou. 2011. A practice driven systematic review of dependency analysis solutions. Journal on Empirical Software Engineering, Springer. DOI: http://dx.doi.org/10.1007/s10664-011-9158-8. Google ScholarDigital Library
- Yongzheng Wu and Jun Sun, Yang Liu, Jin Song Dong. 2013. Automatically Partition Software into Least Privilege Components using Dynamic Data Dependency Analysis. In Automated Software Engineering (ASE), IEEE/ACM 28th International Conference on. vol., no., pp. 323--333. DOI: 10.1109/ASE.2013.6693091.Google ScholarDigital Library
- Static structural dependency analysis for parallelization of Java programs
Recommendations
Cluster analysis of Java dependency graphs
SoftVis '08: Proceedings of the 4th ACM symposium on Software visualizationWe present a novel approach to the analysis of dependency graphs of object-oriented programs. We propose to use the Girvan-Newman clustering algorithm to compute the modular structure of programs. This is useful in assisting software engineers to redraw ...
PRODA: improving parallel programs on GPUs through dependency analysis
AbstractGPU’s powerful parallel processing capability has been highly recognized throughout the industry; however, GPU computing environments have not yet been widely used in the field of parallel computing. In this study, we develop a method of ...
Dependency Analysis for Secured Code Level Parallelization
Today central topic in science and engineering is parallel and distributed computing, research performing in the area of development of new approaches for the modeling, design, analysis, evaluation, and programming of future parallel and distributed ...
Comments