Resource analyses for parallel and distributed coordination

Predicting the resources that are consumed by a program component is crucial for many parallel or distributed systems. In this context, the main resources of interest are execution time, space and communication/synchronisation costs. There has recently been significant progress in resource analysis technology, notably in type‐based analyses and abstract interpretation. At the same time, parallel and distributed computing are becoming increasingly important.

[1]  Lyle Harold Ramshaw,et al.  Formalizing the analysis of algorithms , 1979 .

[2]  MachinesA,et al.  Extracting Characteristics from Functional Programs for Mappingto Massively Parallel , 1995 .

[3]  Hans-Wolfgang Loidl,et al.  Engineering Large Parallel Functional Programs , 1997, Implementation of Functional Languages.

[4]  Jacques Cohen,et al.  Automating program analysis , 1988, JACM.

[5]  Wolf Zimmermann Ansätze zur automatischen Komplexitätsanalyse , 1990 .

[6]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[7]  Sally A. McKee,et al.  Machine learning based online performance prediction for runtime parallelization and task scheduling , 2009, 2009 IEEE International Symposium on Performance Analysis of Systems and Software.

[8]  Sally A. McKee,et al.  An Approach to Performance Prediction for Parallel Applications , 2005, Euro-Par.

[9]  John Hughes,et al.  Recursion and dynamic data-structures in bounded space: towards embedded ML programming , 1999, ICFP '99.

[10]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[11]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[12]  Guy E. Blelloch,et al.  Programming parallel algorithms , 1996, CACM.

[13]  Rohit Chandra,et al.  Parallel programming in openMP , 2000 .

[14]  Ralph Benzinger,et al.  Automated complexity analysis of Nuprl extracted programs , 2001, Journal of Functional Programming.

[15]  Martin Hofmann,et al.  Type-Based Amortised Heap-Space Analysis , 2006, ESOP.

[16]  Jane Hillston,et al.  A compositional approach to performance modelling , 1996 .

[17]  Elvira Albert,et al.  Automatic Inference of Upper Bounds for Recurrence Relations in Cost Analysis , 2008, SAS.

[18]  R. Tarjan Amortized Computational Complexity , 1985 .

[19]  Susumu Horiguchi,et al.  Empirical Parallel Performance Prediction From Semantics-Based Profiling , 2006, Scalable Comput. Pract. Exp..

[20]  Sumit Gulwani,et al.  SPEED: precise and efficient static estimation of program computational complexity , 2009, POPL '09.

[21]  Greg J. Michaelson,et al.  Cost-driven autonomous mobility , 2010, Comput. Lang. Syst. Struct..

[22]  Wentong Cai,et al.  A Cost Calculus for Parallel Functional Programming , 1995, J. Parallel Distributed Comput..

[23]  Holger Hermanns,et al.  Logic for Programming, Artificial Intelligence, and Reasoning , 2010, Lecture Notes in Computer Science.

[24]  Alex Rapaport,et al.  Mpi-2: extensions to the message-passing interface , 1997 .

[25]  Tsung-Min Kuo,et al.  Strictness analysis: a new perspective based on type inference , 1989, FPCA.

[26]  Greg J. Michaelson,et al.  Hume: A Domain-Specific Language for Real-Time Embedded Systems , 2003, GPCE.

[27]  David K. Gifford,et al.  Static dependent costs for estimating execution time , 1994, LFP '94.

[28]  Murray Cole,et al.  A Monadic Calculus for Parallel Costing of a Functional Language of Arrays , 1997, Euro-Par.

[29]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[30]  Pierre Jouvelot,et al.  Polymorphic type, region and effect inference , 1992, Journal of Functional Programming.

[31]  Pierre Jouvelot,et al.  Polymorphic time systems for estimating program complexity , 1992, LOPL.

[32]  Michael Mikolajczak,et al.  Designing And Building Parallel Programs: Concepts And Tools For Parallel Software Engineering , 1997, IEEE Concurrency.

[33]  Steffen Jost Automated amortised analysis , 2010 .

[34]  Richard S. Bird,et al.  Algebra of programming , 1997, Prentice Hall International series in computer science.

[35]  Martin Hofmann,et al.  Amortized Resource Analysis with Polynomial Potential , 2010, ESOP.

[36]  Yaron Goland,et al.  Web Services Business Process Execution Language , 2009, Encyclopedia of Database Systems.

[37]  Andreas Abel,et al.  Type-based termination: a polymorphic lambda-calculus with sized higher-order types , 2006 .

[38]  Ramesh Subramonian,et al.  LogP: towards a realistic model of parallel computation , 1993, PPOPP '93.

[39]  Rob H. Bisseling,et al.  Parallel Scientific Computation , 2004 .

[40]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[41]  Peng-Jun Wan,et al.  A Parallel Computational Model for Heterogeneous Clusters , 2006 .

[42]  Sally A. McKee,et al.  Methods of inference and learning for performance modeling of parallel applications , 2007, PPoPP.

[43]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[44]  Rob H. Bisseling,et al.  Parallel scientific computation - a structured approach using BSP and MPI , 2004 .

[45]  Zhiyong Li,et al.  Models and resource metrics for parallel and distributed computation , 1994, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[46]  Bowen Alpern,et al.  Modeling parallel computers as memory hierarchies , 1993, Proceedings of Workshop on Programming Models for Massively Parallel Computers.

[47]  Jacques Cohen,et al.  Two languages for estimating program efficiency , 1974, Commun. ACM.

[48]  Sergei Gorlatch,et al.  Cost Optimality and Predictability of Parallel Programming with Skeletons , 2003, Euro-Par.

[49]  Greg J. Michaelson,et al.  Characterising Effective Resource Analyses for Parallel and Distributed Coordination , 2009, FOPARA.

[50]  Ben Wegbreit,et al.  Mechanical program analysis , 1975, CACM.

[51]  Kevin Hammond,et al.  Inferring Cost Equations for Recursive, Polymorphic and Higher-Order Functional Programs , 2003, IFL.

[52]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[53]  Shengchao Qin,et al.  Analysing memory resource bounds for low-level programs , 2008, ISMM '08.

[54]  Norman W. Paton,et al.  Adaptive Workflow Processing and Execution in Pegasus , 2008, 2008 The 3rd International Conference on Grid and Pervasive Computing - Workshops.

[55]  Susumu Horiguchi,et al.  A parallel SML compiler based on algorithmic skeletons , 2005, Journal of Functional Programming.

[56]  Jorge A. Navas,et al.  User-Definable Resource Bounds Analysis for Logic Programs , 2007, ICLP.

[57]  James R. Larus,et al.  Using the run-time sizes of data structures to guide parallel-thread creation , 1994, LFP '94.

[58]  Torsten Suel,et al.  BSPlib: The BSP programming library , 1998, Parallel Comput..

[59]  Murray Cole,et al.  Automated Cost Analysis of a Parallel Maximum Segment Sum Program Derivation , 2002, Parallel Process. Lett..

[60]  Ricardo Peña-Marí,et al.  A Space Consumption Analysis by Abstract Interpretation , 2009, FOPARA.

[61]  Alok Aggarwal,et al.  On communication latency in PRAM computations , 1989, SPAA '89.

[62]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .

[63]  Hans-Wolfgang Loidl,et al.  Cost Analysis Using Automatic Size and Time Inference , 2002, IFL.

[64]  Elvira Albert,et al.  Live heap space analysis for languages with garbage collection , 2009, ISMM '09.

[65]  G. Amdhal,et al.  Validity of the single processor approach to achieving large scale computing capabilities , 1967, AFIPS '67 (Spring).

[66]  Gergely Sipos,et al.  Towards user-transparent performance prediction for workflows of higher-order components , 2006 .

[67]  Karl Crary,et al.  Resource bound certification , 2000, POPL '00.

[68]  Mads Rosendahl,et al.  Automatic complexity analysis , 1989, FPCA.

[69]  S. Holmström,et al.  A composition approach to time analysis of first order lazy functional programs , 1989, FPCA.

[70]  D. L. Métayer,et al.  Mechanical analysis of program complexity , 1985, SLIPE '85.

[71]  Uzi Vishkin,et al.  A Case for the PRAM As a Standard Programmer's Model , 1992, Heinz Nixdorf Symposium.

[72]  Martin Hofmann,et al.  Static prediction of heap space usage for first-order functional programs , 2003, POPL '03.

[73]  Martin Hofmann,et al.  Static determination of quantitative resource usage for higher-order programs , 2010, POPL '10.

[74]  Rita Loogen,et al.  Automatic Skeletons in Template Haskell , 2003, Parallel Process. Lett..

[75]  Elvira Albert,et al.  COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode , 2008, FMCO.

[76]  Hans-Wolfgang Loidl,et al.  Granularity in large-scale parallel functional programming , 1998 .

[77]  Sanjay Ranka,et al.  A Practical Hierarchical Model of Parallel Computation. I. The Model , 1992, J. Parallel Distributed Comput..

[78]  Jan Midtgaard Control-Flow Analysis of Functional Programs , 2007 .

[79]  Jeffrey Scott Vitter,et al.  Algorithms for parallel memory, II: Hierarchical multilevel memories , 1992, Algorithmica.

[80]  Alok Aggarwal,et al.  Communication Complexity of PRAMs , 1990, Theor. Comput. Sci..

[81]  Sergio Yovine,et al.  Parametric prediction of heap memory requirements , 2008, ISMM '08.

[82]  Michael F. P. O'Boyle,et al.  Towards a holistic approach to auto-parallelization: integrating profile-driven parallelism detection and machine-learning based mapping , 2009, PLDI '09.

[83]  Frédéric Gava,et al.  BSP Functional Programming: Examples of a Cost Based Methodology , 2008, ICCS.

[84]  Flemming Nielson,et al.  Type and effect systems - behaviours for concurrency , 1999 .

[85]  Ben Wegbreit,et al.  Verifying Program Performance , 1976, JACM.

[86]  Jean Souyris Industrial experience of abstract interpretation-based static analyzers , 2004, IFIP Congress Topical Sessions.

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

[88]  Nils Anders Danielsson Lightweight semiformal time complexity analysis for purely functional data structures , 2008, POPL '08.

[89]  Philippe Flajolet,et al.  Automatic Average-Case Analysis of Algorithm , 1991, Theor. Comput. Sci..

[90]  Manuel V. Hermenegildo,et al.  Combining Static Analysis and Profiling for Estimating Execution Times , 2006, PADL.

[91]  Martin Hofmann,et al.  "Carbon Credits" for Resource-Bounded Computations Using Amortised Analysis , 2009, FM.

[92]  Martin Hofmann,et al.  Automatic Certification of Heap Consumption , 2004, LPAR.

[93]  Bruce M. Maggs,et al.  Proceedings of the 28th Annual Hawaii International Conference on System Sciences- 1995 Models of Parallel Computation: A Survey and Synthesis , 2022 .

[94]  Sanjay Ghemawat,et al.  Distributed Programming with MapReduce , 2007 .

[95]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .

[96]  Stephen Gilmore,et al.  Combining Measurement and Stochastic Modelling to Enhance Scheduling Decisions for a Parallel Mean Value Analysis Algorithm , 2006, International Conference on Computational Science.

[97]  Henrik Theiling,et al.  Reliable and Precise WCET Determination for a Real-Life Processor , 2001, EMSOFT.

[98]  Wei-Ngan Chin,et al.  Calculating Sized Types , 1999, PEPM '00.

[99]  Norman Scaife,et al.  Functional prototyping for parallel skeleton based implementation , 2002 .

[100]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[101]  Greg J. Michaelson,et al.  Autonomous Mobile Programs , 2006, 2006 IEEE/WIC/ACM International Conference on Intelligent Agent Technology.

[102]  Armelle Bonenfant,et al.  Worst-Case Execution Times for a Purely Functional Language , 2006, IFL.

[103]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[104]  Hans-Wolfgang Loidl,et al.  Improvements to a Resource Analysis for Hume , 2009, FOPARA.