One of the oldest and the simplest software packages for parallelizing Matlab calculations is Paralize ( http://www.mathworks.com/matlabcentral/fileexchange/211 ). It consists of only two short m-functions ("paralize.m" and "serve.m"), and implements the embarrassingly parallel model of computations (that is fork-join without communication and synchronization between instances). After the update made in 2006 by Andrzej Karbowski it helps to make calculations both within multiprocessor or multicore machines and in clusters of computers. The biggest drawback of Paralize is that, like in some other free parallel packages, the communication and synchronization is realized by disk files, what involves busy waiting, or, in other words, active polling, is slow and sometimes causes errors.
The jPar package is almost as simple as Paralize from the user point of view (actually it is compatible with it), very easy to install, but it does not waste the cycles of cores on active polling and allows for using the machines with started Matlab instances to other purposes. Moreover, it does not use for communication and synchronization network file system, but more efficient Java RMI and Java Threads.
The package consists of only three elements:
1. Registration server
2. Solvers
3. Client.
The first process to be run is the registration server, whose task is to manage the set of solvers. It is provided in the form of a single Java executable JAR file and started from the operating system command window. The next step is to start Matlab instances and run one or more solvers from their sessions. It does not matter what operating systems are used, since both computing (Matlab) and communication (Java) environments are system independent. The registration is done by adding a handle to a remote solver object to the managed set. Then the Matlab sessions are blocked until the tasks are available. On the machine, where the server is running, one Matlab session must be the client session. It is started from Matlab console and divides input data to chunks (as in Paralize, along the third dimension of the arrays), creates partial tasks and sends them via server to solvers. When the calculations are finished, the results are gathered on the console (i.e. client) Matlab session.
The installation and use of jPar are described in README.TXT file.
The authors of jPar are Marek Majchrowski, Piotr Trojanek and Andrzej Karbowski from Warsaw University of Technology.
|