Parallel Support Software for Matlab (Matpar)


Objective: Matlab is a popular commercial program used by scientists and engineers to perform matrix operations, but its performance is limited by the workstation environment. For example, a Sun UltraSparc with 130 megabytes of memory can take 25 minutes to perform QR factorization on a 2000 x 2000 matrix. The use of a parallel computer can speed this up considerably, by using special parallel mathematical libraries.

Approach: Part of the Matpar software resides on a Sun computer, where it is called by Matlab when a user invokes a special external routine, called a MEX file. The part of Matpar that is on the Sun uses PVM calls to initiates a session on parallel computer. The parallel part of Matpar begins running on the nodes of the parallel computer, and waits for commands to arrive from the Sun. Once the Sun side detects that the parallel side has begun, it sends appropriate commands and data, depending on the call, to a single node (called the coordinator node) of the parallel computer. The coordinator node distributes the commands and data to the remaining nodes, and execution begins. The parallel computer calls appropriate mathematical routines. These routines include SCALAPACK (the parallel version of LAPACK), PBLAS (the parallel version of BLAS), and some custom code. The results are returned back to the part of Matpar running on the Sun, which in turn passes them back to Matlab.

Accomplishments: The software currently runs on a Cray T3D and an Intel Paragon. Support is provided for matrix-matrix multiplication, trace calculation, and QR factorization. Persistence is also supported in two ways. A large matrix may be sent to the parallel computer once, and used many times by the parallel computer without having to be resent each time. This is important, because communication times are slower than calculation times in many cases. The second kind of persistence allows output from a calculation to be made persistent, either permanently, or just for a single use in a succeeding operation. Single use persistence can help free up memory on the parallel computer. Memory can also be freed by a special call which deletes a persistent matrix.

Significance: A big performance increase can be realized by a user of the Matpar software. In the above example, a 2000 x 2000 matrix can be passed to the parallel computer and factored in less than 2 minutes. This can allow near real-time response for large problems, rather than forcing the user to submit a job overnight.

Status/Plans: Support for Bode plot calculations, with each node performing on a single matrix, is to be added in the near term. More feedback from practicing engineers and scientists is needed to refine the user interface, and determine what additional functionality is warranted.

Point of Contact:
Paul L. Springer
Jet Propulsion Laboratory
pls@jpl.nasa.gov
(818) 393-3014