Scientific and technical software developers require the ability to "see" their data and do their analyses graphically instead of, or in addition to, numerically. Exploration of large datasets, display of simulation results and interactive steering of computation all require data visualization in some way, shape or form.
Application developers in High Performance Computing need flexible methods for displaying large arrays of multivariable information with implicit or explicit geometries.
Visualization of data and information is a vital research and applications frontier that influences the scientific, engineering, medical, business and entertainment fields. The ability to visualize data during program execution gives the application developer the opportunity to comprehend large and complex datasets.
The requirements of scientists can be categorized as follows:
The goals for the software used for visualization include:
- Data navigation: Since the datasets are, as mentioned above, typically quite large, manual inspection of the numeric output is very hard, if not impossible. Visualization combined with navigation allows the scientist to rapidly explore very large datasets.
- Animation: The best way to present time-varying images produced by long running simulations is animation. The ability to store and play back these image sequences is high on the desired list.
- Interaction: The scientist should have the ability to dynamically graph the set of variables. This would allow them to modify or abort computations.
- Presentation of results: Scientists would also like to present their findings using a picture. So, a mechanism to print the graphs should be provided.
- Ease of Use: Scientists want to have a short learning curve. Hence the visualization techniques need to be easy to use and intuitive.
- Scalability: The software should scale well to large datasets.
- Extensibility: The user should not have to unlearn features as new releases become available. Also, the software needs to be extensible to support distributed data when users are working under a distributed paradigm.
Seeing your data
The biggest difference between similar products and the scheme detailed in this paper, which is used in the Sun WorkShop's Data Visualization, is that there is no learning curve to be able to use the functionality. Almost literally, all the user would have to do is point-and-click. In most other systems, there is a command language and the barrier to entry is high.
The Data Visualization capability is included with Sun WorkShop and can be invoked from the Debugger. It is currently available for C, C++ and Fortran. Java support will be added in the future as that language becomes more widely used in the scientific and engineering community.
The user selects Graph Selected to visualize the selected expression or Graph Expression to visualize the expression in the Expression box.
There are, basically, three ways to update the data being visualized:
- Upon demand
- At every break point
- At time intervals
Each item being visualized is specified by an array description and refresh attributes. The Data Visualization can show both one- and two-dimensional arrays. The diagram displays a two-dimensional array with indices in the x and y axes and value in the z axis. The user can zoom in or out and change the angle of presentation by clicking on controls below the image. Color can be used to highlight out of range values, making it easy to spot anomalies.
The ability to visualize data during program execution gives the application developer the opportunity to comprehend large and complex datasets. The Data Visualizer and other features in Sun WorkShop sets Sun apart from its competitors as a pioneer in advanced application development.