UP | HOME

The Big Picture

Table of Contents

ZIO is a central part of a larger picture which encompasses both Wire-Cell Toolkit, DUNE FD DAQ and other asynchronous, distributed systems.

1 Wire-Cell Toolkit Example

The Wire-Cell Toolkit part is (badly) illustrated in the following diagram which represents types of connections and not their instances. As you examine this type graph keep in mind that each type of node or arrow may represent hundreds or thousands in an equivalent instance graph.

Sorry, your browser does not support SVG.

At the top of the diagram are some WCT components which are consumers and producers of data. They represent a small fraction of a larger, arbitrary WCT job graph. We focus on those that deal with data of interface type ITensorSet. This WCT data type has an equivalent ZIO message form ("TENS") and simple and efficient converters between the two. Many WCT data interface types can be converted between ITensorSet (eg, IFrame and IDepoSet). Such conversion is assumed to occur in the top "package" labeled "Broader Wire-Cell Graph".

In order to scale WCT jobs across multiple computers and to access thread-unsafe resources in a safe and efficient manner, a mechanism to offload WCT data based on ZIO is used. Two patterns for this offload are currently considered.

The two patterns are identified by their message queues.

flow
one way data transfer either out of or in to the WCT graph
domo
asynchronous request/reply pattern based on Majordomo protocol

In the diagram, the data flow queue is used to write data to or read data from HDF5 files. The domo work queue is used to send data to the GPU for accelerated processing and return the results. In principle, either the backend brokers or the back end workers/handlers can be replaced with other WCT graphs. As with all asynchronous message passing systems care is needed to not design in a distributed deadlock.