A Survey of Reasoning in Parallelization

We elaborate on reasoning in contemporary (semi) automatic parallelizing refactoring. As the main contribution we summarize contemporary approaches and show that all attempts to reason in parallelization thus far, have amounted to local code analysis given data and control dependencies. We conclude that, by retaining this perspective only, parallelization continues to exploit merely a subset of the reasoning methods available today and is likely to remain limited. To address this problem we suggest to expand the local analyses, such that, they take seriously relations between individual local parallelizing transformations. We argue that such a coupling allows to process sparser parallelizable constructs, such as, producer-consumer coordination. We identify questions to be addressed to put this principle into action and report on-going work on (reasoning) mechanisms able to support this.

[1]  Christoph W. Kessler,et al.  Crosscutting Concerns in Parallelization by Invasive Software Composition and Aspect Weaving , 2006, Proceedings of the 39th Annual Hawaii International Conference on System Sciences (HICSS'06).

[2]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[3]  Mikhail Chalabine,et al.  Invasive interactive parallelization , 2007 .

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[5]  Christoph W. Kessler,et al.  Two program comprehension tools for automatic parallelization , 2000, IEEE Concurr..

[6]  Ken Kennedy,et al.  Optimizing Compilers for Modern Architectures: A Dependence-based Approach , 2001 .

[7]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

[8]  Peter Norvig,et al.  Artificial intelligence - a modern approach, 2nd Edition , 2003, Prentice Hall series in artificial intelligence.

[9]  Katsuhiro Yamazaki,et al.  A Case-Based Parallel Programming System , 1998, PDSE.

[10]  Murray Cole,et al.  Algorithmic skeletons : a structured approach to the management of parallel computation , 1988 .

[11]  Robin Wilson,et al.  Applications of graph theory , 1979 .

[12]  Sergei Gorlatch,et al.  Extracting and Implementing List Homomorphisms in Parallel Program Development , 1999, Sci. Comput. Program..

[13]  John R. Gurd,et al.  Using AspectJ to separate concerns in parallel scientific Java code , 2004, AOSD '04.

[14]  John F. Sowa,et al.  Knowledge Representation and Reasoning , 2000 .

[15]  J. Gross,et al.  Graph Theory and Its Applications , 1998 .

[16]  Christoph Kessler,et al.  Optimising Intensive Interprocess Communication in a Parallelised Telecommunication Traffic Simulator , 2003 .

[17]  Christoph W. Kessler,et al.  Parallelisation of Sequential Programs by Invasive Composition and Aspect Weaving , 2005, APPT.

[18]  Martin Griebl,et al.  Automatic Parallelization of Loop Programs for Distributed Memory Architectures , 2004 .

[19]  Mitsuhisa Sato,et al.  Development and Implementation of an Interactive Parallelization Assistance Tool for OpenMP: iPat/OMP , 2006, IEICE Trans. Inf. Syst..

[20]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[21]  Ken Kennedy,et al.  Interactive Parallel Programming using the ParaScope Editor , 1991, IEEE Trans. Parallel Distributed Syst..

[22]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[23]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[24]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[25]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[26]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[27]  D. Walker,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2022 .

[28]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[29]  ParaWise – Widening Accessibility to Efficient and Scalable Parallel Code , .

[30]  John R. Gurd,et al.  A join point for loops in AspectJ , 2006, AOSD '06.