S-Net
Characteristics:
S-Net addresses the multi-core/many-core programming challenge by reviving
the idea of coordination. Unlike previous approaches, S-Net achieves
a near-complete separation of concerns between (sequential) component engineering
and concurrency engineering, i.e. the orchestration of components into a parallel
application.
Components can be implemented in any programming language suitable for the corresponding
application domain (technically, we currently support ISO C and SAC) with almost
no understanding of their planned interaction in an application.
Regular functions are automatically promoted to asynchronous components that await
data to be processed and in response issue new data. Any S-Net component has a
single input and a single output stream (SISO principle). This design is paramount
for our aim of separation of concerns: neither potential synchronisation of multiple
input streams nor routing to multiple output streams are a concern of the component
engineer.
Streaming networks of asynchronous components are defined by means of a small
network combinator language that restricts itself to four fundamental principles
of composition: serial composition (pipelining), parallel composition (choice),
serial replication (iteration, recursion) and index parallel replication (data
parallelism).
The S-Net runtime system is responsible for the fully autonomous, efficient mapping
of components to the available execution hardware.
Recommended reading:
-
C. Grelck, S.B. Scholz, A. Shafarenko:
Concurrency Engineering with S-Net.
15. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'09),
Maria Taferl, Austria.
Technical Report 2009-X-1, pp. 78--92,
Institute of Computer Languages, Vienna University of Technology, 2009.
[ pdf ]
Brief introduction to S-Net and associated project goals.
-
C. Grelck, S.B. Scholz, A. Shafarenko:
Asynchronous Stream Processing with S-Net.
International Journal of Parallel Programming 38(1), pp. 38-67,
Springer, 2010.
[ pdf ]
[ SpringerLink ]
Canonical reference for S-Net.
-
P. Zaichenkov, B. Gijsbers, C. Grelck, O. Tveretina, A. Shafarenko:
A Case Study in Coordination Programming: S-Net vs Concurrent Collections.
28th IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW'14),
Workshop on Programming Models, Languages and Compilers for Manycore and Heterogeneous
Architectures (PLC'14),
Phoenix, USA.
IEEE Computer Society, 2014.
[ pdf ]
[ IEEE Xplore ]
Application case study.
-
B. Gijsbers, C. Grelck:
An Efficient Scalable Work-Stealing Runtime for Macro Data Flow Processing
Using S-Net.
International Journal of Parallel Programming,
Springer, 2013.
[ pdf ]
[ SpringerLink ]
New S-Net runtime system Front that achieves competitive performance.
-
C. Grelck, J. Julku, F. Penczek:
Distributed S-Net: Cluster and Grid Computing without the Hassle.
12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing
(CCGrid'12), Ottawa, Canada, pp. 410-418,
IEEE Computer Society, 2012.
[ pdf ]
[ IEEE Xplore ]
Distributed S-Net: an S-Net extension for cluster and grid computing.
Latest achievements:
-
With the novel Front runtime system we achieve competitive performance
and just outperformed Intel's Concurrent Collections in there benchmark.
- ...
Partners:
Project website
More information available at:
www.snet-home.org.
Dr Clemens Grelck