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:


Latest achievements:


Partners:


Project website

More information available at: www.snet-home.org.
Valid HTML 4.01!     Valid CSS!             Dr Clemens Grelck