DataBlaster Toolkit

Code Instrumentation Tool for Visualization
W.Bethel, Lawrence Berkeley Laboratory Visualization Group
2 June 1998


The intent of this toolset is to provide the means to easily move data from simulations to visualization tools. Unlike some other code instrumentation tools (such as CUMULVS), there are absolutely no dependancies or restrictions with respect to MP computing environments.

The underlying presumption in this toolkit is that the overall goal is to send data, which can be up to a five-dimensional array of double precision floating point values, from a computational source to a consumer. The underlying data must be reducable to a contiguous chunk of memory. This tool makes use of the "eXternal Data Representation" (XDR) libraries for transmission and translation from one architecture to another. Therefore, you can send compute data on an 8-byte-word big-endian machine and consume the data on a 4-byte-word little endian workstation. XDR takes care of all the architecture representation issues (thus, XDR must be present on both client and server machines).

This toolkit contains:

  1. Source code for an AVS Coroutine module. This module acts as the "server" module. It will sit and wait for a connection on a socket from anywhere on the net. Simulation data that arrives on the socket is translated into an AVS field, and then sent to downstream modules in the AVS network (if any). There are limitations w.r.t. how the abstract 5-d data array is mapped into an AVS field. Presently, an AVS field which is constructed which uses this template: uniform, double precision floating point, scalar. Note that source code could be pirated from the example AVS module for the purposes of implementing other types of fields, such as irregular, vector, integer, etc.
  2. Source code for example data generator. This is a simple C-program that is to be run from the command line. It shows how to use the communication tools in the provided socket library. This program first connects to a server (see #3 or #1), then for some number of simulation steps, computes data and transfers it to the server.
  3. Source code for example data receiver. Similar in function to the AVS Coroutine (#1 above), except that this is a simpler C-program that is to be run from the command line. It waits for a connection on a socket, then receives data from a client. It doesn't actually do anything with the data.
  4. Source code for low-level socket communication tools. This C-source code implements the transport layer used by the DataBlaster clients and servers using standard Berkeley sockets.

User Configuration

The hsocket.h file contains two #define's that are to be configured by the user.

#define SERV_TCP_PORT 8118
#define SERV_HOST_NAME ""

The first, SERV_TCP_PORT, is the port number over which communications will take place. The second, SERV_HOST_NAME, is the fully-qualified name of the machine which will run the server code.

Use of Tools

Not finished.

Tested Architectures

Download the DataBlaster source code tarball.