Skip to main content
Erschienen in: Empirical Software Engineering 3/2016

01.06.2016

An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems

verfasst von: Saleh M. Alnaeli, Jonathan I. Maletic, Michael L. Collard

Erschienen in: Empirical Software Engineering | Ausgabe 3/2016

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

An empirical study is presented that examines the potential to parallelize general-purpose software systems. The study is conducted on 13 open source systems comprising over 14 MLOC. Each for-loop is statically analyzed to determine if it can be parallelized or not. A for-loop that can be parallelized is termed a free-loop. Free-loops can be easily parallelized using tools such as OpenMP. For the loops that cannot be parallelized, the various inhibitors to parallelization are determined and tabulated. The data shows that the most prevalent inhibitor by far, is functions called within for-loops that have side effects. This single inhibitor poses the greatest challenge in adapting and re-engineering systems to better utilize modern multi-core architectures. This fact is somewhat contradictory to the literature, which is primarily focused on the removal of data dependencies within loops. Results of this paper also show that function calls via function pointers and virtual methods have very little impact on the for-loop parallelization process. Historical data over a 10-year period of inhibitor counts for the set of systems studied is also presented. It shows that there is little change in the potential for parallelization of loops over time.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Alnaeli SM et al (2012). Empirically examining the parallelizability of open source software system. Proceedings of the 2012 19th Working Conference on Reverse Engineering Alnaeli SM et al (2012). Empirically examining the parallelizability of open source software system. Proceedings of the 2012 19th Working Conference on Reverse Engineering
Zurück zum Zitat Alomari HW et al (2014) srcSlice: very efficient and scalable forward static slicing. J Softw: Evol Process: n/a-n/a Alomari HW et al (2014) srcSlice: very efficient and scalable forward static slicing. J Softw: Evol Process: n/a-n/a
Zurück zum Zitat Bacon DF, Sweeney PF (1996). Fast static analysis of C++ virtual function calls. Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. San Jose, California, USA, ACM: 324–341 Bacon DF, Sweeney PF (1996). Fast static analysis of C++ virtual function calls. Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. San Jose, California, USA, ACM: 324–341
Zurück zum Zitat Banerjee UK (1988) Dependence analysis for supercomputing. Kluwer Academic Publishers Banerjee UK (1988) Dependence analysis for supercomputing. Kluwer Academic Publishers
Zurück zum Zitat Banning JP (1979) An efficient way to find the side effects of procedure calls and the aliases of variables. Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. San Antonio, Texas, ACM: 29–41 Banning JP (1979) An efficient way to find the side effects of procedure calls and the aliases of variables. Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. San Antonio, Texas, ACM: 29–41
Zurück zum Zitat Bik AJC, Gannon D (1997) Automatically exploiting implicit parallelism in Java. Concurr Pract Exp 9:579–619CrossRef Bik AJC, Gannon D (1997) Automatically exploiting implicit parallelism in Java. Concurr Pract Exp 9:579–619CrossRef
Zurück zum Zitat Bliss N (2007) Addressing the multicore trend with automatic parallelization. Lincoln Lab J 17:12 Bliss N (2007) Addressing the multicore trend with automatic parallelization. Lincoln Lab J 17:12
Zurück zum Zitat Calder B, Grunwald D (1994). Reducing indirect function call overhead in C++ programs. Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages. Portland, Oregon, USA, ACM: 397–408 Calder B, Grunwald D (1994). Reducing indirect function call overhead in C++ programs. Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages. Portland, Oregon, USA, ACM: 397–408
Zurück zum Zitat Cheng B-C, Hwu W (2000) An empirical study of function pointers using SPEC Benchmarks. Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing, Springer-Verlag: 490–493 Cheng B-C, Hwu W (2000) An empirical study of function pointers using SPEC Benchmarks. Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing, Springer-Verlag: 490–493
Zurück zum Zitat Collard ML et al (2011) Lightweight transformation and fact extraction with the srcML toolkit. Source Code Analysis and Manipulation (SCAM). Williamsburg, VA, USA: 10 Collard ML et al (2011) Lightweight transformation and fact extraction with the srcML toolkit. Source Code Analysis and Manipulation (SCAM). Williamsburg, VA, USA: 10
Zurück zum Zitat Collard ML et al (2003) An XML-based lightweight C++ Fact Extractor. Proceedings of the 11th IEEE International Workshop on Program Comprehension, IEEE Computer Society: 134 Collard ML et al (2003) An XML-based lightweight C++ Fact Extractor. Proceedings of the 11th IEEE International Workshop on Program Comprehension, IEEE Computer Society: 134
Zurück zum Zitat Collard ML et al (2002) Supporting document and data views of source code. In Proceedings of ACM Symposium on Document Engineering: 8 Collard ML et al (2002) Supporting document and data views of source code. In Proceedings of ACM Symposium on Document Engineering: 8
Zurück zum Zitat Dean J et al (1995) Optimization of object-oriented programs using static class hierarchy analysis. Proceedings of the 9th European Conference on Object-Oriented Programming, Springer-Verlag: 77–101 Dean J et al (1995) Optimization of object-oriented programs using static class hierarchy analysis. Proceedings of the 9th European Conference on Object-Oriented Programming, Springer-Verlag: 77–101
Zurück zum Zitat Dig D et al (2009). Relooper: refactoring for loop parallelism in Java. Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications. Orlando, Florida, USA, ACM: 793–794 Dig D et al (2009). Relooper: refactoring for loop parallelism in Java. Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications. Orlando, Florida, USA, ACM: 793–794
Zurück zum Zitat Dijkstra E (1979) Go to statement considered harmful. Classics in software engineering, Yourdon Press: 27–33 Dijkstra E (1979) Go to statement considered harmful. Classics in software engineering, Yourdon Press: 27–33
Zurück zum Zitat Dragan N et al (2009). Using method stereotype distribution as a signature descriptor for software systems. in the Proceedings of the IEEE International Conference on Software Maintenance (ICSM’09) Dragan N et al (2009). Using method stereotype distribution as a signature descriptor for software systems. in the Proceedings of the IEEE International Conference on Software Maintenance (ICSM’09)
Zurück zum Zitat Dragan N et al (2010) Automatic identification of class stereotypes. Proceedings of the 2010 I.E. International Conference on Software Maintenance, IEEE Computer Society: 1–10 Dragan N et al (2010) Automatic identification of class stereotypes. Proceedings of the 2010 I.E. International Conference on Software Maintenance, IEEE Computer Society: 1–10
Zurück zum Zitat Emami M, Ghiya R, Hendren LJ (1994) Context-sensitive interprocedural points-to analysis in the presence of function pointers. SIGPLAN Not 29(6):242–256CrossRef Emami M, Ghiya R, Hendren LJ (1994) Context-sensitive interprocedural points-to analysis in the presence of function pointers. SIGPLAN Not 29(6):242–256CrossRef
Zurück zum Zitat Ghezzi C, Jazayeri M (1982) Programming language concepts, Wiley Ghezzi C, Jazayeri M (1982) Programming language concepts, Wiley
Zurück zum Zitat Goff G, Kennedy K, Tseng C-W (1991) Practical dependence testing. SIGPLAN Not 26(6):15–29CrossRef Goff G, Kennedy K, Tseng C-W (1991) Practical dependence testing. SIGPLAN Not 26(6):15–29CrossRef
Zurück zum Zitat Grove D et al (1997) Call graph construction in object-oriented languages. Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Atlanta, Georgia, USA, ACM: 108–124 Grove D et al (1997) Call graph construction in object-oriented languages. Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Atlanta, Georgia, USA, ACM: 108–124
Zurück zum Zitat Hennessy JL, Patterson DA (2006) Computer architecture: a quantitative approach. Morgan Kaufman Publishers, San FranciscoMATH Hennessy JL, Patterson DA (2006) Computer architecture: a quantitative approach. Morgan Kaufman Publishers, San FranciscoMATH
Zurück zum Zitat Jacobson T, Stubbendieck G (2003). Dependency analysis of for-loop structures for automatic parallelization of C code Jacobson T, Stubbendieck G (2003). Dependency analysis of for-loop structures for automatic parallelization of C code
Zurück zum Zitat Kennedy K, Allen JR (2002) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publishers Inc Kennedy K, Allen JR (2002) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publishers Inc
Zurück zum Zitat Kim M, Kim H, Luk C-K (2010) Prospector: a dynamic data-dependence profiler to help parallel programming. In 2nd USENIX Workshop on Hot Topics in Parallelism , HotPar ‘10 Kim M, Kim H, Luk C-K (2010) Prospector: a dynamic data-dependence profiler to help parallel programming. In 2nd USENIX Workshop on Hot Topics in Parallelism , HotPar ‘10
Zurück zum Zitat Kong X, Klappholz D, Psarris K (1991) The I test: an improved dependence test for automatic parallelization and vectorization. IEEE Trans Parallel Distrib Syst 2:342–349CrossRef Kong X, Klappholz D, Psarris K (1991) The I test: an improved dependence test for automatic parallelization and vectorization. IEEE Trans Parallel Distrib Syst 2:342–349CrossRef
Zurück zum Zitat Kulkarni D et al (1993) Loop and data transformations: a tutorial. University of Toronto Kulkarni D et al (1993) Loop and data transformations: a tutorial. University of Toronto
Zurück zum Zitat Maydan DE et al (1991) Efficient and exact data dependence analysis. Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation. Toronto, Ontario, Canada, ACM: 1–14 Maydan DE et al (1991) Efficient and exact data dependence analysis. Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation. Toronto, Ontario, Canada, ACM: 1–14
Zurück zum Zitat Mock M, Atkinson DC, Chambers C, Eggers SJ (2005) program slicing with dynamic points-to sets. IEEE Trans Softw Eng 31(8):657–678CrossRef Mock M, Atkinson DC, Chambers C, Eggers SJ (2005) program slicing with dynamic points-to sets. IEEE Trans Softw Eng 31(8):657–678CrossRef
Zurück zum Zitat Muth R, Debray SK (1997) On the complexity of function pointer may-alias analysis. Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development, Springer-Verlag: 381–392 Muth R, Debray SK (1997) On the complexity of function pointer may-alias analysis. Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development, Springer-Verlag: 381–392
Zurück zum Zitat Nikolopoulos DS et al (2001) The trade-off between implicit and explicit data distribution in shared-memory programming paradigms. Proceedings of the 15th international conference on Supercomputing (ICS ’01). Sorrento, Italy, ACM: 15 Nikolopoulos DS et al (2001) The trade-off between implicit and explicit data distribution in shared-memory programming paradigms. Proceedings of the 15th international conference on Supercomputing (ICS ’01). Sorrento, Italy, ACM: 15
Zurück zum Zitat Novillo D (2006) OpenMP and automatic parallelization in GCC. Proceedings of the GCC Developers’ Summit conference. Ottawa, Canada Novillo D (2006) OpenMP and automatic parallelization in GCC. Proceedings of the GCC Developers’ Summit conference. Ottawa, Canada
Zurück zum Zitat Orso A, Sinha S, Harrold MJ (2004) Classifying data dependences in the presence of pointers for program comprehension, testing, and debugging. ACM Trans Softw Eng Methodol 13(2):199–239CrossRef Orso A, Sinha S, Harrold MJ (2004) Classifying data dependences in the presence of pointers for program comprehension, testing, and debugging. ACM Trans Softw Eng Methodol 13(2):199–239CrossRef
Zurück zum Zitat Petersen PM, Padua DA (1993) Static and dynamic evaluation of data dependence analysis. Proceedings of the 7th international conference on Supercomputing. Tokyo, Japan, ACM: 107–116 Petersen PM, Padua DA (1993) Static and dynamic evaluation of data dependence analysis. Proceedings of the 7th international conference on Supercomputing. Tokyo, Japan, ACM: 107–116
Zurück zum Zitat Petersen PM, Padua DA (1996) Static and dynamic evaluation of data dependence analysis techniques. IEEE Trans Parallel Distrib Syst 7(11):1121–1132CrossRef Petersen PM, Padua DA (1996) Static and dynamic evaluation of data dependence analysis techniques. IEEE Trans Parallel Distrib Syst 7(11):1121–1132CrossRef
Zurück zum Zitat Petersen PM, Padua DA (1991) Experimental evaluation of some data dependence tests Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, Urbana, Illinois, 61801 Petersen PM, Padua DA (1991) Experimental evaluation of some data dependence tests Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign, Urbana, Illinois, 61801
Zurück zum Zitat Psarris K, Kyriakopoulos K (1999) Data dependence testing in practice. Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques, IEEE Computer Society: 264 Psarris K, Kyriakopoulos K (1999) Data dependence testing in practice. Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques, IEEE Computer Society: 264
Zurück zum Zitat Pugh W (1991) The Omega test: a fast and practical integer programming algorithm for dependence analysis. Proceedings of the 1991 ACM/IEEE conference on Supercomputing. Albuquerque, New Mexico, United States, ACM: 4–13 Pugh W (1991) The Omega test: a fast and practical integer programming algorithm for dependence analysis. Proceedings of the 1991 ACM/IEEE conference on Supercomputing. Albuquerque, New Mexico, United States, ACM: 4–13
Zurück zum Zitat Wilson RSFRP, Wilson CS, Amarasinghe SP, Anderson JM, Tjiang SWK, Shih-wei L, Chau-wen T, Hall MW, Lam MS, Hennessy JL (1994) SUIF: an Infrastructure for research on parallelizing and optimizing compilers. ACM SIGPLAN Not 29:31–37CrossRef Wilson RSFRP, Wilson CS, Amarasinghe SP, Anderson JM, Tjiang SWK, Shih-wei L, Chau-wen T, Hall MW, Lam MS, Hennessy JL (1994) SUIF: an Infrastructure for research on parallelizing and optimizing compilers. ACM SIGPLAN Not 29:31–37CrossRef
Zurück zum Zitat Shah Anand RBG (1995) Function pointers in C - an empirical study. Technical Report LCSR-TR-244: 11 Shah Anand RBG (1995) Function pointers in C - an empirical study. Technical Report LCSR-TR-244: 11
Zurück zum Zitat Spuler DA, Sajeev ASM (1994) Compiler detection of function call side effects Technical Report 94/01 Spuler DA, Sajeev ASM (1994) Compiler detection of function call side effects Technical Report 94/01
Zurück zum Zitat Sundaresan V et al (2000). Practical virtual method call resolution for Java. Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Minneapolis, Minnesota, USA, ACM: 264–280 Sundaresan V et al (2000). Practical virtual method call resolution for Java. Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Minneapolis, Minnesota, USA, ACM: 264–280
Zurück zum Zitat Zhang S, Ryder BG (1994). Complexity of single level function pointer aliasing analysis, Rutgers University, Department of Computer Science, Laboratory for Computer Science Research Zhang S, Ryder BG (1994). Complexity of single level function pointer aliasing analysis, Rutgers University, Department of Computer Science, Laboratory for Computer Science Research
Metadaten
Titel
An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems
verfasst von
Saleh M. Alnaeli
Jonathan I. Maletic
Michael L. Collard
Publikationsdatum
01.06.2016
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 3/2016
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-015-9385-5

Weitere Artikel der Ausgabe 3/2016

Empirical Software Engineering 3/2016 Zur Ausgabe

Premium Partner