CSAR Noon Seminar
David Padua,
UIUC/CS
DATE: Wednesday, March 3, 2004
TIME: 12:00 Noon
PLACE: 2240 DCL
1304 W. Springfield Ave., Urbana, IL
TITLE: Extending MATLAB for Parallel Programming
ABSTRACT
I will describe a MATLAB extension that has been implemented here at
Illinois as part of our collaboration with IBM Research in the PERCS
project. PERCS is one of the design projects sponsored by DARPA's High
Productivity Computer Systems (HPCS) program.
The extension is based on a new data type called Hierarchically Tiled
Array (HTA) that facilitates the representation and manipulation of
arrays and their organization as a hierarchy of tiles. In our system,
parallelism and communications are expressed using array operations in
a single thread. A master workstation distributes the operations on the
HTAs on the servers where their tiles reside. Using array operations
for parallelism and communication raises the level of abstraction with
respect to the traditional SPMD approach and completely eliminates the
risk of race conditions. Thus, using HTAs to express parallel
computations improves readability, facilitates reasoning about
programs, frees programmers from the complexities of low-level parallel
programming, and, as a result, boosts productivity.
Our implementation is a toolbox that extends the standard MATLAB
language. It uses MPI for communication and has no other requirements
from the target system. This implementation approach has several
benefits:
-
A standard MATLAB installation needs no modification to make use of the
HTA system.
- The syntax of the HTA interface is consistent with MATLAB syntax
and, partially because of this, it is easy to learn and use.
- MATLAB is a well-known and robust programming environment with a
large base of users (more than 500,000) that can benefit from our
parallel programming prototype with a very short learning curve.
- A programmer using HTAs can benefit from the large set of
libraries that have been developed for MATLAB.
- The development of the prototype has been accelerated thanks to
the high-level programming of several of its modules in MATLAB.
- MPI is the current standard for message-passing programming and,
thus, is available for virtually any system.