Browsing by Author "Jin, Guohua"
Now showing 1 - 3 of 3
Results Per Page
Sort Options
Item Compiling Parallel Matlab for General Distributions Using Telescoping Languages(2006-10-31) Fletcher, Mary; Jin, Guohua; Kennedy, Ken; McCosh, CherylMatlab is one of the most popular computer languages for technical and scientific programming. However, until recently, it has been limited to running on uniprocessors. One strategy for overcoming this limitation is to introduce global distributed arrays, with those arrays distributed across the processors of a parallel machine. In this paper, we describe the compilation technology we have designed for Matlab D, a distributed-array extension of Matlab. Our approach is distinguished by a two-phase compilation technology with support for a rich collection of data distributions. By precompiling array operations and communication steps into Fortran plus MPI, the time to compile an application using those operations is significantly reduced. This paper includes preliminary results that demonstrate that this approach can dramatically improve performance, scaling well to at least 32 processors.Item Improving Performance with Integrated Program Transformations(2004-09-09) Jin, Guohua; Mellor-Crummey, John; Qasem, ApanAchieving a high fraction of peak performance on today’s computer systems is difficult for complex scientific applications. To do so, an application’s characteristics must be tailored to exploit the characteristics of its target architecture. Today, commercial compilers do not adequately tailor programs automatically; thus, application scientists must settle for lackluster performance or manually transform their codes into a form that is complex and unmaintainable. In this paper, we describe a prototype source-to-source transformation tool that enables application scientists to achieve high performance for scientific codes without changing their natural coding style. Our tool supports a rich, integrated collection of optimizing transformations and provides users with precise control over how these optimizations should be applied. In preliminary experiments with the Runga-Kutta advection core from the NCOMMAS code for mesoscale weather modeling and Livermore Loop 18, we have used our tool to double single-processor performance.Item Strategy for Compiling Parallel Matlab for General Distributions(2006-06-16) Fletcher, Mary; Jin, Guohua; Kennedy, Ken; McCosh, CherylExecuting applications in parallel can produce significant performance gains, yet the time and expertise needed for the low-level details of parallelism is often prohibitive. Additionally, many applications rely heavily on domain-specific libraries, while it is not practical to write an optimizing compiler each time a domain-specific library is developed. In order to obtain high performance parallelism from a high-level, domain-specific scripting language, we are developing a parallel Matlab compiler, called the Matlab D compiler, using a telescoping languages framework to generate Fortran with MPI from Matlab scripts. The goal of telescoping languages is to automatically generate high performance compilers for domain-specific languages written in the form of libraries. Before user-script compilation, the domain-specific library routines are precompiled and optimized to form specialized variants, which are substituted into the user script during user-script compilation. With this strategy, user scripts are compiled quickly, and the compiler produces applications with the same high performance as if the user's application were available at library compile time. To create a parallel Matlab, we augmented the language with array distribution types to create Matlab D. When declaring an array intended to be used in a parallel computation, the user specifies the desired distribution for the array. Our Matlab D compiler, leveraging HPF compiler technology, generates the data movement operations and partitions the computations automatically to obtain the parallelism implied by the distributions. Thus, users can develop applications in a high-level scripting language and obtain the high performance necessary without incurring the cost of low-level programming. This paper presents the framework of the Matlab D compiler from a telescoping languages perspective and our preliminary work on the project.