PAWS (Parallel Application WorkSpace) provides a framework for coupling parallel applications within a component-like model.
Central to the design of PAWS is the coupling of parallel applications using parallel communication channels. The coupled applications can be running on different machines, and the data structures in each coupled component can have different parallel distributions. PAWS is able to carry out the communication without having to resort to global gather/scatter operations. Instead, point-to-point transfers are performed in which each node sends segments of data to remote nodes directly and in parallel. Furthermore, PAWS uses Nexus to permit communication across heterogeneous architectures. On platforms that support multiple communication protocols, it will attempt to select the fastest available node-to-node protocol.
The PAWS framework provides both an interface library for use in component applications and a PAWS "controller" that coordinates the interaction of components. The PAWS controller organizes and registers each of the applications participating in the framework. Through the controller, component applications ("tasks") register the data structures that should be shared with other components. Tasks are created and connections are established between registered data structures via the script interface of the controller. The controller provides for dynamic data connection and disconnection, so that applications can be launched independently of both one another and the controller. PAWS supports C, C++, and Fortran interfaces for applications connecting to the PAWS framework.
PAWS provides basic data classes for data transfer, including arrays of arbitrary dimension which can be distributed in a broad range of patterns. It also allows for the transfer of user defined data types through the provision of function callbacks for data encoding and decoding on each end.
Because of the generality of the PAWS parallel data transfer interface, it is possible to connect existing parallel applications, parallel data post-processors, and parallel visualization software with minimal coding.
The PAWS software package consists of the following:
PAWS components may be scripted together with Tcl to allow user control of multiple applications, including their initialization, inter-connection, and termination.
PAWS has been integrated into the POOMA framework, and any POOMA application can therefore be immediately connected to other POOMA or PAWS applications or visualization components from the ACLVisualization Team.
We have not yet carried out an evaluation of PAWS. However, you can submit your own evaluation of PAWS if you would like to.
The latest version of PAWS was 2.2.0.