CUMULVS (Collaborative User Migration User Library for Visualization and Steering) is developed by the Oak Ridge National Laboratory. It is part of the ACTS Toolkit in the DOE 2000 Initiative. CUMULVS is a software framework that enables programmers to incorporate fault-tolerance, interactive visualization and computational steering into existing parallel programs.
The following summarizes the inter-operability status of Global Arrays and CUMULVS:
Global Arrays is inter-operable with CUMULVS's computational steering capability. In an application using Global Arrays, steering parameters can be defined for a CUMULVS front-end viewer and manipulated by the viewer during the lifetime of execution. The packages used in the testing are:
The Global Arrays can be configured to work with one of several communication libraries. The one we used was based on MPI. The CUMULVS is based on PVM (Version 3.3.11 or later).
CUMULVS User's Guide provides instructions of how to use CUMULVS, and the definitions of library functions. Examples that come with the CUMULVS package serve as a good starting point, which give the user some insight of what to do, even though they are written in PVM. The following is quoted from the CUMULVS User's Guide:
A typical statement sequence that a programmer would follow is
stv_init()
)stv_decompDefine()
)stv_fieldDefine()
)stv_paramDefine()
)stv_sendToFE()
Before doing anything, the environment variable STV_ROOT
should be set, either in $HOME/.cshrc
or equivalent shell startup file. The value of $STV_ROOT
should be the directory where CUMULVS is, as in:
setenv STV_ROOT /home/me/CUMULVS
The applications should include the header files of
fpvm3.h
(Fortran) or pvm3.h (C)
fstv.h
(Fortran) or stv.h (C)
Compile the application and link it with either libfstv.a
or libstv.a,
depending on whether the application is written in Fortran or C.
Next, start the pvm daemon and run the application.
Start the viewer to manipulate the steering parameters.
CUMULVS is fairly easy to use in a Global Arrays application. We successfully tested the inter-operability of Global Arrays with CUMULVS's computational steering capacity. The capacity of CUMULVS's visualization needs further investigation.
(It would be preferable for the CUMULVS could provide a version based on MPI since more and more applications are using MPI nowadays. It is somewhat cumbersome to start the PVM daemon all the time before running the MPI-based applications.)