Introduction
Users
Evaluation
Status
Documentation
Developers

PAWS

Introduction

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:

  1. A set of PAWS data types for parallel transfer.
  2. A PAWS Controller which coordinates and manages applications.
  3. A PAWS Application interface for communicating with the controller and other applications.
  4. A PAWS parallel data transfer library based on Nexus.

PAWS components may be scripted together with Tcl to allow user control of multiple applications, including their initialization, inter-connection, and termination.

Users

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.

Evaluation

We have not yet carried out an evaluation of PAWS. However, you can submit your own evaluation of PAWS if you would like to.

Status

The latest version of PAWS was 2.2.0.

Documentation

Presentation on PAWS at the ACTS Workshop 2003.

Developers

PAWS was developed at the Advanced Computing Laboratory at Los Alamos National Laboratory; its principal developers were Peter Beckman, Bill Humphrey, Pat Fasel, Susan Mniszewski and Bill Humphrey.




Tools News Project Home