skip to main content
10.1145/2905055.2905343acmotherconferencesArticle/Chapter ViewAbstractPublication PagesictcsConference Proceedingsconference-collections
research-article

Static structural dependency analysis for parallelization of Java programs

Published:04 March 2016Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  1. Static structural dependency analysis for parallelization of Java programs

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      ICTCS '16: Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies
      March 2016
      843 pages
      ISBN:9781450339629
      DOI:10.1145/2905055

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 4 March 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate97of270submissions,36%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader