A coordination-based model-driven method for parallel application development

A continuous trend in computing is the demand for increasing computing performance. Provided that the problem space allows a solution that can be separated in parts to be computed independently, parallel systems offer a performance that exceeds that of sequential systems. To continue to improve processor performance, companies such as Intel and AMD have turned to hyper-threading and multi-core architectures [1]. With the advent of multi-core processors in the consumer market in 2005, parallel systems have moved out of the scientific niche and became a commodity [2]. Industry today is relying on hyper-threading and increasing processor count per chip as the new performance drivers since physical limitations impede further performance gains that are based on increasing clock speed and optimizing execution flow. These new performance drivers make it necessary to explicitly consider concurrency.

[1]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[2]  Chris Hankin,et al.  Coordinatio Languages and Models , 2002, Lecture Notes in Computer Science.

[3]  Walter F. Tichy,et al.  Parallelizing Bzip2: A Case Study in Multicore Software Engineering , 2009, IEEE Software.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Edward A. Lee The problem with threads , 2006, Computer.

[6]  Pao-Ann Hsiung,et al.  Model-driven development of multi-core embedded software , 2009, 2009 ICSE Workshop on Multicore Software Engineering.

[7]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[8]  Paolo Ciancarini,et al.  Coordination models and languages as software integrators , 1996, CSUR.

[9]  Wanli Ma,et al.  Graphical assistance in parallel program development , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

[10]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[11]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2004, Distributed and Parallel Databases.

[12]  Jack Dongarra,et al.  Visual Programming and Parallel Computing , 1994 .

[13]  Fatos Xhafa,et al.  Towards an Intelligent Environment for Programming Multi-core Computing Systems , 2009, Euro-Par Workshops.

[14]  Anneke Kleppe,et al.  Software Language Engineering: Creating Domain-Specific Languages Using Metamodels , 2008 .

[15]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .

[16]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[17]  Daniel S. Katz,et al.  Abstractions for Distributed Systems (DPA 2008) , 2008, Euro-Par Workshops.

[18]  Jonathan Schaeffer,et al.  Using generative design patterns to generate parallel code for a distributed memory environment , 2003, PPoPP '03.

[19]  James Withey Investment Analysis of Software Assets for Product Lines. , 1996 .

[20]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[21]  Bernd Freisleben,et al.  Coordination Patterns for Parallel Computing , 1997, COORDINATION.

[22]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[23]  William Gropp,et al.  Learning from the Success of MPI , 2001, HiPC.

[24]  Jean-Marie Favre,et al.  Foundations of Model (Driven) (Reverse) Engineering : Models - Episode I: Stories of The Fidus Papyrus and of The Solarus , 2004, Language Engineering for Model-Driven Software Development.

[25]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[26]  P. A. LEE,et al.  - 1-Taxonomy for Visual Parallel Programming Languages , 2003 .

[27]  Pablo de la Fuente,et al.  Dynamic coordination architecture through the use of reflection , 2001, SAC.

[28]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[29]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.

[30]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[31]  Ami Marowka Parallel computing on any desktop , 2007, CACM.

[32]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.