Distributed S-Net: Cluster and Grid Computing without the Hassle

S-Net is a declarative coordination language and component technology primarily aimed at modern multi-core/many-core chip architectures. It builds on the concept of stream processing to structure dynamically evolving networks of communicating asynchronous components, which themselves are implemented using a conventional language suitable for the application domain. We present the design and implementation of Distributed S-Net, a conservative extension of S-Net aimed at distributed memory architectures ranging from many-core chip architectures with hierarchical memory organisations to more traditional clusters of workstations, supercomputers and grids. Three case studies illustrate how to use Distributed S-Net to implement different models of parallel execution. Runtimes obtained on a workstation cluster demonstrate how Distributed S-Net allows programmers with little or no background in parallel programming to make effective use of distributed memory architectures with minimal programming effort.

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

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

[3]  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..

[4]  Sven-Bodo Scholz,et al.  S-Net Language Report , 2013 .

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

[6]  Henry Hoffmann,et al.  A stream compiler for communication-exposed architectures , 2002, ASPLOS X.

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

[8]  Clemens Grelck,et al.  The Essence of Synchronisation in Asynchronous Data Flow , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

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

[10]  Manfred Broy,et al.  The algebra of stream processing functions , 2001, Theor. Comput. Sci..

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

[12]  Alexander V. Shafarenko,et al.  Message Driven Programming with S-Net: Methodology and Performance , 2010, 2010 39th International Conference on Parallel Processing Workshops.

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

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

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

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

[17]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

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

[19]  F.L. Chevalier,et al.  STAP Processing Without noise-only reference: requirements and solutions , 2006, 2006 CIE International Conference on Radar.

[20]  Clemens Grelck,et al.  SAC—A Functional Array Language for Efficient Multi-threaded Execution , 2006, International Journal of Parallel Programming.

[21]  Clemens Grelck,et al.  Implementation Architecture and Multithreaded Runtime System of S-Net , 2008, IFL.