MATLAB » IPM HPC Laboratory

↑ Return to Services

MATLAB

MATLAB (Matrix laboratory) is a high-performance language for scientific computing. It integrates computation, visualization, simulation and programming environments. These factors make MATLAB an excellent tool for research objectives.

 

The Parallel Computing Toolbox (PCT) is a MATLAB toolbox solving computation-intensive and data-intensive problems using MATLAB more quickly — on local multicore computer, Cluster of computers or GPU platforms. Parallel processing operations such as parallel for-loops and message-passing functions let implement task- and data-parallel algorithms in MATLAB. Converting serial MATLAB applications to parallel MATLAB applications generally requires few code modifications free of low-level programming. In this document we proposed experimental results of some sample MATLAB applications on IPM cluster and investigated the improvement rate of speedup.

Cluster of IPM included different hardware platforms and high speed interconnection network (infiniband) to execute MATLAB application. A brief description is as following table:

 

 

Cluster # cores of workers # hosts for concurrent submission # of GPU platforms # throughput of infiniband network
IPM 400 7 7 * GTX 295 2 Gbps

 

 

State-of-the-art hardware platform of cluster qualifies it for highly computationally or data intensive MATLAB applications. All of the hardware characteristics of the IPM cluster have been optimized for MATLAB applications.  To have a detailed view, we have experimented some applications on the cluster, its results have been reported as follows.

 

Problem Definition: Prime factor computation of large numbers

The objective of this problem is to compute the number of prime factors of a large number. The solution of this problem is straightforward and also massively-parallel. We have experimented this problem on 3 different platforms: i) a local node with 1 processing core, ii) a multicore local node with 8 processing core, and ii) whole the cluster with 400 cores. Following figure shows the speedup results:

 

 

It is worth note that to provide the parallel version of this problem we have used one of the most common features of parallel toolbox (matlabpool/parfor). That’s very straightforward and easy to convert serial applications to parallel, as can be seen in the following table:

 

 

Serial Version Parallel Version
number=1000000000;total = 0;

for i=2:number

prime=1;

for j=2: sqrt(i)

if (mod(I,j)==0)

prime=0;

break;

end;

end;

total = total+prime;

end;

Matlabpool (configName,’open’)number=1000000000;

total = 0;

parfor i=2:number

prime=1;

for j=2: sqrt(i)

if (mod(I,j)==0)

prime=0;

break;

end;

end;

total = total+prime;

end;

matlabpool close;

 

 

 

 

For Submitting MATLAB follow this link

Powered by PHP Webmasterpoint.org