MATLAB has become the most popular rapid prototyping language for scientific computing. Highlevel mathematical languages like MATLAB dramatically simplify program development. Unfortunately, this simplification often has come at the expense of efficient implementation. Today, MATLAB programs are usually interpreted on sequential machines. Thus, the performance of these programs suffers in comparison with Fortran programs compiled on parallel high-performance computers. The objective of this project is to develop and evaluate language extensions, run-time libraries, and tools for compiling MATLAB and similar interactive languages for efficient execution on classes of target machines ranging from uniprocessor workstations to highly-parallel distributed systems.
The technical thrust of this project is to develop restructuring compiler technology that will enable the translation of MATLAB codes into sequential or parallel object code that is competitive with handwritten code produced by skillful FORTRAN programmers. The work will build on previous work by the investigators and will take advantage of existing software modules from the Falcon system (developed at Illinois). The compiler will accept parallel extensions and will be able to automatically translate sequential MATLAB loops into parallel form. The compiler will transform the code to enhance locality and generate efficient sparse code from dense computations. This transformation is necessary because MATLAB codes usually represent sparse computations in dense form. The investigators will also consider incorporating some of the compiler modules into the interpreter for just-in-time restructuring.