GT AE 6382 - MATLAB-G - A Grid-Based Parallel MATLAB

Unformatted text preview:

1 MATLAB*G: A Grid-Based Parallel MATLAB Ying Chen 1 and Suan Fong Tan 2 1 Singapore-MIT Alliance, E4-04-10, 4 Engineering Drive 3, Singapore-117576 2 Department of Computer Science, National University of Singapore, Singapore-117534 Abstract The objective of this project is to develop MATLAB*G, a parallel MATLAB for grid. MATLAB*G has client/server architecture and is designed to support two different types of parallelization: distributed matrix computation and parallel for-loop. MATLAB*G is implemented on the ALiCE Grid using Java. ALiCE (Adaptive and scaLable internet-based Computing Engine), developed at NUS, is a lightweight grid-computing middleware. A simple extension to MATLAB is provided by MATLAB*G to allow the user to invoke parallelization. Experiments are carried out to investigate the performance of MATLAB*G for distributed matrix computation. Results indicate that for large matrix sizes MATLAB*G can be a faster alternative to sequential MATLAB. 1 Introduction MATLAB is a popular mathematical software that provides an easy-to-use interface for scientists and students to compute and visualize various computations. Computation intensive MATLAB applications can benefit from faster execution if parallelism is provided by MATLAB. With the increasing popularity of distributed computing, researchers have been building support for parallel computing into MATLAB. With commodity computers getting more powerful and more affordable, and with more people connecting to the Internet, distributed computing is becoming more popular. Grid computing is defined as coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations, where a virtual organization is a collection of compute nodes who share their resources. There is no central control, and the compute nodes are usually heterogeneous. One example of grid computing is Seti@Home [1], where the idle CPU times of desktop machines on the Internet are shared to analyze radio signals in the search for extra-terrestrial life; and file sharing systems like Napster and Kazaa, where disk storage is the resource that is being shared. A grid middleware is a set of tools that can be used to build a grid system. For example, the Condor System [2] and the Globus System [3] are both middlewares. ALiCE (Adaptive and scaLable Internet-based Compute engine) is a grid computing middleware developed at NUS [4]. In this paper we present the design, implementation and experimental results of MATLAB*G, a parallel MATLAB on the ALiCE Grid. The remainder of the paper is organized as follows: comparison among existing parallel MATLABs is given in section 2; the design of MATLAB*G is illustrated in section 3; in section 4 the implementation of MATLAB*G is shown; experimental results are related in section 5 and some recommendations for future work and conclusions are presented in Section 6. 2 Related Works Various parallel MATLABs have been developed by different projects, and currently there are at least twenty available parallel MATLABs. We can compare these existing parallel MATLABs according to the communication approach they use and user interface they provide. A number of parallel MATLABs make use of message-passing for interprocessor communication and provide message-passing interface to the user. Commands, e.g. MPI_Send and MPI_Recv, are available so that a user can write a parallel MATLAB program using the message-passing programming model. These commands, implemented either in MEX-files (user written C/Fortran subroutines callable by MATLAB) or in M-files (script files written in MATLAB’s native programming language), utilize low level message-passing routines which are 1) standard MPI/PVM libraries, as in MultiMATLAB [5], DP-ToolBox [6], and MPITB/PVMTB [7]; or 2) simple communication functions as in PMI [8] and Matlab Parallelization Toolkit [9]; or 3) file I/O synchronization functions if processors communicate with each other via a shared file system as in MatlabMPI [10]. Actually parallel MATLABs in this category can be regarded as a message-passing extension of MATLAB.2 Besides message-passing, shared-memory programming is another parallel programming model. A few parallel MATLABs are designed for shared-memory platforms and provide shared-memory programming interface. For example, MATmarks [11] is a parallel MATLAB running on a shared-memory environment, and commands are provided for shared variable declaration and process synchronization. To exploit parallelization provided either by a message-passing interface or by a shared-memory programming interface, the user must be familiar with parallel programming. A few parallel MATLABs are designed to release the user from parallel details by overloading several MATLAB functions, e.g. linear algebra functions. Instead of re-implementing algorithms, people employ routines in parallel mathematical libraries like ScaLAPACK and LAPACK and provide interfaces to the MATLAB users. Usually these interfaces are implemented in MEX or M-files. For example, in MATLAB*P [12], the MATLAB built-in function lu() is overloaded by a new M-file. The new lu() has the similar syntax with the original lu(), and calls routines in the parallel library to perform parallel LU factorization. The new function is invoked when the input matrix is distributed. Parallel MATLABs mentioned above all require the user to indicate parallelization explicitly either in the program or by invoking specific functions. Parallelization actually is provided by extending MATLAB language. Another different design of parallel MATLAB is a MATLAB compiler, e.g. Otter [13], RTExpress [14] and CONLAB [15]. These compilers can automatically translate an ordinary MATLAB program into a parallel program in C or other languages. An advantage of such a compiler is that parallelization is totally transparent to the user. Nevertheless, at the same time, the user loses the flexibility to manage parallelization in his application. 3 Design All parallel MATLABs mentioned above are developed for a cluster of machines with the same platforms. The objective of MATLAB*G is to build a parallel MATLAB on a platform-independent grid. If many grid users have MATLAB installed on their own PCs,


View Full Document

GT AE 6382 - MATLAB-G - A Grid-Based Parallel MATLAB

Download MATLAB-G - A Grid-Based Parallel MATLAB
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view MATLAB-G - A Grid-Based Parallel MATLAB and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view MATLAB-G - A Grid-Based Parallel MATLAB 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?