Contents
The tool is closely related to the Polaris compiler infrastructure. Polaris, as a compiler, includes advanced capabilities for array privatization, symbolic and non-linear data dependence testing, idiom recognition, interprocedural analysis, and symbolic program analysis. Polaris also represents a general infrastructure for analyzing and manipulating Fortran programs, which can provide useful information regarding the program structure and its potential parallelism. The data files used as input to our tool are mainly obtained from the use of Polaris and its infrastructure throughout the program compilation and performance measurement process.

Internally, Ursa Minor stores the information in itw own "database". Due to its versatility, it also serves as a tool for comperhensive analysis and comparison in a wride area of reserach. Furthermore, the information can be saved in a format that commercial spreadsheets can read from, allowing a richer set of data manipulation and graphical representations.
The Ursa Minor tool is written in Java
with the help of Java Workshop. Thus, any platform on which the Java runtime
environment is available can be used to run the tool. It uses the basic
Java language with standard APIs, which enhances the portability of the
tool. Object orientation in Java allows a relatively easy addition of new
types of data that we may want to include in the database. The windowing
toolkits and utilities provided a good environment for prototyping user
interfaces, which enabled us to focus on the design of the tool functionality.
Click here to view the full size picture.
The above picture shows a typical table view. Here, the table displays information such as timing results from various program runs and the number of invocation of loops. Whenever additional information is available, more columns can be added. Users can perform table manipulation, such as sorting, arranging, and deleting columns and rows. Bar graphs, diplay thresholds, and other utilities add to functionality of the view. Users also have access to the performance advisor and the Expression Evaluator from this view.
click here to view the full size picture.
The above picture presents the call graph view. Each rectangle represents a program unit (subroutine, function, loop). Users can zoom in and out, find units, or have the tool display the portion of source code.
For more information on the functionality, refer to the online User's Manual.
The Ursa Minor project is a basis for another project going on at Purdue University. The Ursa Major project (User Responsive System allowing Managed Access to Java Optimization Repository), utilizes the APIs developed for Ursa Minor for the purpose of distributing our results and experience through the Internet. For more information, try the Ursa Major project home page.
Ursa Minor has been installed on the Parallel
Programming Hub on Purdue University Network Computing Hub (PUNCH). Any
remote user can try out Ursa Minor using this network computing facility.
For more information,
try the
Parallel Programming Hub.