Data Monitor Tool

Project Scope

The Data Monitor Tool project will provide an environment for development and execution of online Data Monitors for LIGO.

Data Monitors have the following operational and functional properties

Data monitors can be used to perform the following tasks Functionality that is not covered by the Data Monitor Tool includes (the components that perform these functions are noted in parentheses):

Hardware Environment

The data monitor applications will run on a Symmetric Multi-Processor (SMP) system such as the Sun E-450 enterprise server. The GDS Data Monitor servers are connected to four observatory networks: Additional information about the hardware requirements and implementation options is given on the Data Monitor Hardware Requirements page.

The figure below shows a block diagram of the on-line hardware with the Data monitor server highlighted in blue.

block diagram of Online hardware components

Software Components

A block diagram of the major Data Monitor software components and their interrelationships is shown below:

Application Environment

The application environment provides access to the data, interface services such as generation of trggers and access to data bases, and a data analysis function library. For practial purposes, the Data monitor applications can be divided into two groups: foreground and background. The forground processes will run under a scientific work-station environment that provides graphical display of results, interactive use and a powerful tool-set for application development and testing. The background processes will not receive or provide data directly to operators, but they will have the same online data access and trigger generation capabilities as the foreground processes. A preliminary description of the background application environment is available.

For the initial implementation, the forground environment is based on root (an interpretive C++ environment from CERN tailored to the needs of High Energy Physicists). ROOT has been linked with the Sandbox library classes and functions consisting of LIGO specific data classes, data access functions and a set of macros. Should experience show that higher performance is necessary for certain applications, a stand-alone C/C++ environment can easily be implemented based on the root interfaces.

The applications will receive online data from the Data Distribution sub-system Consumer API via the LDAS FrameCPP library. Triggers (notification of unusual or pathological data sequences) are generated by the application code with the Trigger API . The Digital Signal Processing (DSP) Library will contain a suite of signal processing methods that may be used to analyze the data. These (will) include filtering, FFT, wavelets and series manipulation packages.

GDS Services

Data Monitor specific services provide the monitor applications with access to online data and other external resources.

The Data Distributordistributes online data to each of the monitor applications. By using shared memory buffers, the data distributor make all data available to the monitors with a minimum of overhead.  The Data distributor is composed of four pieces. A Distributed Buffer Manager allocates empty shared memory buffers to producers and filled buffers to consumer processes. A Producer API provides an interface to the buffer manager for the processes that fill the buffer with data and a Consumer API provides the interface for the data receivers. The Data Pusher (DPush) requests current data from the Network Data Server and copies the data to an available shared memory buffer.

The Trigger Coordinator routes triggers as appropriate for logging as meta-data or for enunciation on the operator's console. Preselection of triggers is not defined yet but should be implemented to avoid saturating either the operator log, the meta-data database or the operators patience. The transfer of trigger objects to the Trigger Coordinator is not yet defined, but it may use either Internet Protocol (IP) or Inter-Process Communication (ipc) package primitives (shared memory or ipc message queues).

A Process Controller (not shown in the figure) will make sure that any necessary monitors are running in the background and provide the background processes with the appropriate parameters.

External Services

The data monitor applications interface indirectly to several services provided by other LIGO groups. The CDS Network Data Server (NDS) provides live data for perusal by the data monitor applications. EPICS is used to inform the operators of important events.  Triggers are also logged to the LDAS meta-Database.

Project Schedule

The primary scheduling goal is to make monitoring functionality available at the observatories before the component controls debugging starts (IO  in March 1999?). Considerable descoping from the nominal baseline configuration should be appropriate during the installation and debugging phases. Specifically, it is highly unlikely that the full power of an SMP system will be needed or available. A smaller system consisting of a single processor workstation of similar architecture to the planned SMP will be considered for this time period.


Completed milestones: Planned milestones:


A summary of tasks and their scheduled completion dates are presented the in Project Schedule. Please remember that the current version (dated 12/18/1998) of this schedule is very preliminary. Not all tasks have been listed and estimates of the time required are not based on careful consideration. This schedule will be modified as the project plan progresses and as more is known about the complexity of the various tasks.

Please send comments and suggestions to: John Zweizig