Functionality of the Data Analysis and Visualization Window


Initialization:

Data Analysis Window
Figure 1. Data Analysis and Visualization Window

Display Data Sets and Attributes:

When users choose the application name from Application Name pull-down menu, JAVA GUI should be able to find all data sets appeared in execution_table. Since there may be several runs in the execution table, we currently implement it using the maximum run_id shown in the run_table. Using the example of astro3d, the SQL query can be: Then, we use max_id to find all data sets in execution_table. The SQL query can be: For each data set, there are probably multiple rows in execution_table. However, a tuple (dataset, iter_num, status) uniquely determines one row in the execution table. In addition, JAVA GUI should be able to find the size and type of the data sets from access_pattern_table. The SQL query can be: Therefore, the number of dimensions and data type for each data set can be known and be displayed in the window. Note that eType is an MPI_Datatype, type of integer in C. According to mpi.h, these MPI types have pre-defined values:

MPI_CHAR 1
MPI_UNSIGNED_CHAR 2
MPI_BYTE 3
MPI_SHORT 4
MPI_UNSIGNED_SHORT 5
MPI_INT 6
MPI_UNSIGNED 7
MPI_LONG 8
MPI_UNSIGNED_LONG 9
MPI_FLOAT 10
MPI_DOUBLE 11
MPI_LONG_DOUBLE 12
MPI_LONG_LONG_INT 13

Running the Data Analysis Program:

When users click Run button, Java GUI should first check out if analysis_flag is set to 1 in run_table using SQL query: If analysis_flag is 1, this means data analysis program has already been run and the results are in execution_table.

If analysis_flag is 0, this means data analysis program has never been run for this max_id and Java GUI should launch the analysis program and waiting for its completion:

% rsh -l wkliao aixdev codes/Run/data_analysis 4 astro3d

After this remote shell returns, Java GUI reads max, min, and means values from execution_table and display in the entries accordingly. The SQL query can be






Running the Visualization Tool:

We aussume all registered visualization tools are stored in the same local host as the Java GUI. Therefore, users can launch the visualization tools locally without using rsh. To obtain all visualization tools registered in the data base, use SQL query to visualization_table:

Users can choose which data set to be viewed by clicking a radio button from the above View column. After choosing the visualization tool and clicking Visualize button, Java GUI should execute the following procedure:

  1. pass parameters run_id, acc_id, dataset, iter_num, status to an array reading program, read_array, as command line arguments. For example, to obtain the data set vr_logrho from application astro3d with run_id = 1, acc_id = 2, iter_num = 2, and status = 0, use the command

    % rsh aixdev codes/Run/read_array astro3d 1 2 vr_logrho 2 0 > vr_logrho.1.2.2.0

    Program read_array has already implemented and stored in aixdev.

  2. launch the visualization program. For example, a program named astroiso.vtk written in VTK tool is registered in the data base. Java GUI executes command:

    % cat vr_logrho.1.2.2.0 | astroiso.vtk 2 3

    where the first argument 2 is MPI eType and the second is number of dimensions, 3 in this case.

  3. Or we can use one-line command:

    % rsh aixdev codes/Run/read_array astro3d 1 2 vr_logrho 2 0 | astroiso.vtk 2 3

Register a New Visualization Tool:

All Visualization programs should read 3 command line arguments:
  1. file name that stores the data set, (optional, can use standard input)
  2. MPI data type of each element in the data set, and
  3. number of dimensions.
Since the dimension size of each dimension for one data set is stored in the file generated from the program, read_array. Therefore, visualization programs should also read the dimension sizes first and then the data set. For example, a visualization program called A_NAME (registered in the data base) stored as a file named /homes/my_uid/my_tool in the local host should be able to be launched by the following command:

% /homes/my_uid/my_tool array.dat eType ndims

or use standard input to read the data array:

% /homes/my_uid/my_tool eType ndims < array.dat


Last modified on Oct. 26, 1999

Please send comments to wkliao@ece.nwu.edu.