The Pathcalc computer program estimates the time needed to execute a given application program on a parallel computer of given computation and network capabilities. Pathcalc can be used to analyze the effects of changes in such parameters as central-processing-unit (CPU) speed, network bandwidth, and network latency. Pathcalc is written in Java and should be executable on most computers.

Pathcalc could be used to determine how long it would take to execute the same application program on a different parallel computer or whether a specified faster network or a faster CPU could execute the program in an acceptably short time. It could also be used to determine what part of a parallel system is slowing down execution of a given application program the most: For example, by artificially setting the CPU speed very high, one could determine how much time is used in communication; or by artificially setting the communication speed very high, one could determine how much time is consumed in CPU operations.

It is not necessary to understand the application program or to mathematically model the network in order to use Pathcalc. All one needs is the trace files (one such file for each CPU of the computer) from a previous run of the application program. Pathcalc then generates its estimate on the basis of the trace files and the network parameters provided by the user.

The estimate is valid only (1) for a computer with the same number of nodes used to generate the trace files; (2) provided that message passing is restricted to such simple routines as send, receive, and barrier calls; and (3) provided that the execution of the application program can be relied upon to always follow the same path through the code, regardless of changes in network response times. In situations in which these restrictions are acceptable, Pathcalc offers advantages of simplicity and speed over a number of other programs that estimate execution times of application programs; this is because unlike those estimators, Pathcalc uses only the trace information instead of executing the application programs themselves.

This work was done by Paul Springer of Caltech for NASA's Jet Propulsion Laboratory. NPO-20237



This Brief includes a Technical Support Package (TSP).
Document cover
Program estimates run time on a parallel computer

(reference NPO20237) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
NASA Tech Briefs Magazine

This article first appeared in the June, 1999 issue of NASA Tech Briefs Magazine (Vol. 23 No. 6).

Read more articles from the archives here.


Overview

The document discusses Pathcalc, a performance estimation tool developed by Paul Springer for NASA's Jet Propulsion Laboratory. Written in Java, Pathcalc is designed to run on most computers and provides a means to estimate the execution time of application programs on parallel computing systems with varying network and computational capabilities.

Pathcalc operates by utilizing trace files generated from previous runs of an application program, with one trace file required for each CPU involved. This approach allows users to analyze how changes in parameters such as CPU speed, network bandwidth, and latency affect program performance without needing to understand the application code or model the network. The tool generates estimates based on the provided trace files and user-defined network parameters, making it simpler and faster than other performance estimation tools that require actual code execution.

The document highlights the advantages of Pathcalc, particularly its simplicity and speed. Unlike other tools, such as LAPSE, which require direct execution of the application and detailed modeling of the network and operating system, Pathcalc only needs timing information from trace files. This makes it easier to use, although it is limited to scenarios where the number of nodes remains constant and the execution path of the application does not vary with network performance.

Pathcalc allows users to conduct "what if" analyses to determine the impact of different performance parameters on program execution. For example, by artificially increasing CPU speed, users can assess how much time is spent on communication versus computation. The tool is particularly useful for identifying bottlenecks in parallel systems, helping users understand whether performance limitations stem from network issues or computational inefficiencies.

The document also provides a technical disclosure, detailing the motivation behind Pathcalc's development, which stemmed from a need to predict the performance of ScaLAPACK routines on different computing platforms. The author shares a practical example of using Pathcalc to estimate runtime for matrix operations, demonstrating its effectiveness in providing accurate predictions.

In summary, Pathcalc is a valuable tool for researchers and engineers working with parallel computing, offering a straightforward method for estimating performance and optimizing application execution across various computing environments.