Functionality of the Data Analysis and Visualization Window
Initialization:
- For Data Analysis -- The initialization for this Java GUI window
is similar to the Parallel Application Window.
The only difference is in Name menu.
Since data analysis program is also a registered application in the data
base, it is not necessary to show this program in the Name menu.
- For Visualization -- Java GUI should look for
visualization_table in the
data base to find the registered visualization tools and display in
the Visualization Tool Name menu.
Users can also register new tools by click New button.
The process of registration is similar to the parallel applications
except no new tables created in the data base.
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:
- SELECT MAX(run_id) FROM astro3d_run_table
-- to obtain the maximum run_id, max_id.
Then, we use max_id to find all data sets in execution_table.
The SQL query can be:
- SELECT acc_id, dataset, iter_num, status FROM
astro3d_execution_table WHERE run_id=max_id
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:
- SELECT acc_id, ndims, dims, etype FROM
astro3d_access_pattern_table WHERE run_id=max_id
-- to obtains all acc_ids
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:
- SELECT analysis_flag FROM astro3d_run_table WHERE
run_id=max_id
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
- SELECT dataset, iter_num, status, max, min, means FROM
astro3d_execution_table WHERE run_id=max_id
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:
- SELECT name, exe, version, owner_id FROM
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:
- 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.
- 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.
- 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:
- file name that stores the data set, (optional, can use standard input)
- MPI data type of each element in the data set, and
- 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.