Message Driven Programming with S-Net: Methodology and Performance

Development and implementation of the coordination language S-NET has been reported previously. In this paper we apply the S-NET design methodology to a computer graphics problem. We demonstrate (i) how a complete separation of concerns can be achieved between algorithm engineering and concurrency engineering and (ii) that the S-NET implementation is quite capable of achieving performance that matches what can be achieved using low-level tools such as MPI. We find this remarkable as under S-NET communication, concurrency and synchronization are completely separated from algorithmic code. We argue that our approach delivers a flexible component technology which liberates application developers from the logistics of task and data management while at the same time making it unnecessary for a distributed computing professional to acquire detailed knowledge of the application area.

[1]  Edith Schonberg,et al.  Factoring: a method for scheduling parallel loops , 1992 .

[2]  Ralf Ebner,et al.  Transformation of Functional Programs into Data Flow Graphs Implemented with PVM , 1996, PVM.

[3]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[4]  Kevin Hammond Exploiting Purely Functional Programming to Obtain Bounded Resource Behaviour: The Hume Approach , 2005, CEFP.

[5]  Alexander V. Shafarenko,et al.  Parallel signal processing with S-Net , 2010, ICCS.

[6]  Gert Florijn,et al.  ARIADNE and HOPLa: Flexible Coordination of Collaborative Processes , 1996, COORDINATION.

[7]  Clemens Grelck,et al.  Distributed S-Net , 2011 .

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

[9]  Alan Chalmers,et al.  Linda implementations in Java for concurrent systems: Research Articles , 2004 .

[10]  Greg Michaelson,et al.  Hume: a Functionally-Inspired Language for Safety-Critical Systems , 2000 .

[11]  Geoff Sutcliffe,et al.  PROLOG-LINDA : AN EMBEDDING OF LINDA IN muPROLOG , 2006 .

[12]  Charles D. Hansen,et al.  Distributed interactive ray tracing for large volume visualization , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[13]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[14]  Keming Zhang,et al.  SCIRun2: a CCA framework for high performance computing , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[15]  Ellen H. Siegel,et al.  Implementing distributed Linda in Standard ML , 1991 .

[16]  Alexander V. Shafarenko,et al.  Asynchronous Stream Processing with S-Net , 2010, International Journal of Parallel Programming.

[17]  I. Wald,et al.  Ray Tracing on the Cell Processor , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[18]  Alexander V. Shafarenko Nondeterministic Coordination using S-Net , 2008, High Performance Computing Workshop.

[19]  Laxmikant V. Kale,et al.  Charm++ and AMPI: Adaptive Runtime Strategies via Migratable Objects , 2009 .

[20]  Alan Chalmers,et al.  Linda implementations in Java for concurrent systems , 2004, Concurr. Pract. Exp..

[21]  Turner Whitted,et al.  An improved illumination model for shaded display , 1979, CACM.

[22]  Rita Loogen,et al.  Under Consideration for Publication in J. Functional Programming Parallel Functional Programming in Eden , 2022 .

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

[24]  Cristian S. Calude,et al.  Discrete Mathematics and Theoretical Computer Science , 2003, Lecture Notes in Computer Science.

[25]  Charles E. Leiserson,et al.  The Cilk++ concurrency platform , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[26]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[27]  John Salmon,et al.  Automatic Creation of Object Hierarchies for Ray Tracing , 1987, IEEE Computer Graphics and Applications.

[28]  Bradford L. Chamberlain,et al.  Parallel Programmability and the Chapel Language , 2007, Int. J. High Perform. Comput. Appl..