PARALLEL PROGRAMMING IN MATLAB ENVIRONMENT ON CRESCO CLUSTER, INTERACTIVE AND BATCH MODE.

compliantprotectiveSoftware and s/w Development

Dec 1, 2013 (4 years and 5 months ago)

91 views

PARALLEL PROGRAMMING IN MATLAB ENVIRONMENT ON CRESCO CLUSTER,
INTERACTIVE AND BATCH MODE.

Authors: Guido Guarnieri
1
, Silvio Migliori, Salvatore Podda

1
ENEA
-
FIM, Centro Ricerche di Portici, Via Vecchio Macello


Loc.
Granatello, 80055 Portici (NA), 08177235
76
www.cresco.enea.it

e
-
mail:
guido.guarnieri@portici.enea.it



Abstract

Matlab (MATrix LABoratory) provides an environment for numeric elaboration and an
interpreted programming language widely used in science and technology. The package is
equipped with s
pecialized libraries (toolboxes) which can solve problems in several fields.
For some years the implementation of parallel programming in Matlab environment has been
under study. Mathworks, the producer of Matlab, distributes toolboxes with this target, b
ut
there are also third party projects with the same aim. Among them is the “MatlabMPI” library
developed by Lincoln Laboratories of the Massachusetts Institute of Technology. ENEA GRID,
by the introduction of CRESCO machines, has achieved a very high com
putational power.
So, the possibility of parallel programming in Matlab on this structure becomes a meaningful
aim. We have chosen to modify and install the “MatlabMPI” library for Linux machines of
ENEA GRID and particularly for CRESCO cluster.

This fun
ctions library, written in pure Matlab language, implements a subset of the functions
defined in the MPI standard and allows to run, at the same time, several Matlab processes
both on multicore machines and computer clusters. Data exchange among the proce
sses
does not happen by real message sending and receiving, but via file system access
operations. Some code changes were required to install MatlabMPI on ENEA GRID and to
adapt the use of the library to CRESCO submission mode. To enable the launching of
Matlab
jobs on remote machines in interactive such as in batch mode we have resorted to the ENEA
GRID submission tool. The use of this library along with the multithreading programming
mode on multicore nodes, enabled in latest versions of Matlab, also per
mit to enforce a
hybrid programming mode on CRESCO cluster. The user can exploit the parallelism assured
by multithreading on multicore nodes and implement the communication among the nodes
with MatlabMPI.