Schooner Interconnection System
Creating scientific meta-computations
The Schooner interconnection system first creates the interface for
Then, the meta-computation is configured by placing
the components on designated hosts,
and providing the communication and heterogeneity support to tie
the components together.
A stub compiler reads the UTS specification file for a component, and produces one or more stub files that handle the automatic translation of arguments to/from the UTS data representation, and the interface to the Schooner runtime libraries. A stub compiler is provided for each supported language, currently these are C (schc), C++ (schc++), and Fortran (schf).
A component in Schooner encapsulates a particular programming model, uses a particular programming language, and is targeted for a particular type of machine. At runtime, a component is implemented by a process. Thus, the component is both the unit of heterogeneity and the unit of distribution in a meta-computation. Control flow is based on a sequential procedural programming model in which there is logically one thread of control that transfers between components using remote procedure calls (RPC). The Schooner runtime provides both static and dynamic configuration mechanisms. In static configuration, the meta-computation is fully specified at the start of execution. In dynamic configuration, the meta-computation can add and delete components on-the-fly, and can support multiple threads of control with the line abstraction.