Distributed Computing - Data2Dynamics/d2d GitHub Wiki

Distrubuted Computing

In addition to multi-threading, some functions take advantage of PARFOR loops that are provided by the MATLAB Distributed Computing Toolbox. The MATLAB distributed computing toolbox can either be used to open a pool of MATLAB workers on a local machine (with multiple cores) or on a cluster over the network. For instance MATLAB pool with 4 workers can be opened locally by parpool('local',4). Contact your MATLAB cluster administrator for further information and the discription of parallel function in the following.

Functions for local workers

For some functions, e.g. that read or write files on the hard disk, a local pool of workers is more usedfull or even required.

  • arCompileAll.m uses a PARFOR loop to accelerate symbolic calculations, writing and compiling of c-code to the hard disk for the different experimental conditions and data sets.

Functions for cluster workers

Before the following functions can be used on a cluster, the function arCompileCluster.m has to be called to generate corresponding mex-files on each cluster worker.

  • arChi2s.m or arChi2LHS.m uses a PARFOR loop to accelerate the objective function evaluation for the different parameters sets.

  • Similarly, arFits.m or arFitLHS.m uses a PARFOR loop to accelerate the multiple parameter estimation runs for different initial parameters sets.

Performance Comparison

We use the example application Epo induced JAK2/STAT5 signaling model in CFU-E cells to illustrate speed up on a dual-core computer using matlabpool local 4:

  • arCompileAll: 207.77 sec vs. 119.10 sec