Skip to content

Parallelization

Andreas Raue edited this page Sep 16, 2013 · 6 revisions

Parallelization

Computation time is often the bottle neck for modeling applications. Especially when parameteres are estimated it is important the single estimation runs converge as quick as possible. This allows a interactive workflow when the ideal structure of a model is known jet.

In the parameter estimation the model has to be evaluated many times. Often, a single model evaluation requires serveral numerical solutions of the ODE systems. Since these evaluation are all independent this is the ideal level for applying parallel computing without communication overhead between parallel ODE solver calls.

The Data 2 Dynamics software package applies parallelization based on multi-threading using the pthread package. This only work for Unix type operating system, for instance Linux or Mac OS X. On Windows systems parallelization is disabled.

We use the example application Epo induced JAK2/STAT5 signaling model in CFU-E cells that contains 24 different experimental conditions as demonstation. The 24 different experimental conditions correspond to 24 different variants of the original ODE system that have to be numerically simulated for one evaluation of the complete model, using a maximum of 24 independent threads.

The figure below shown how computation is accelerated on a 16 core machine if the number of thread is increase, compare to sequential computation.

Alt text

The figure indicates that acceleration scales as excepted with increasing number of threads. After using as many cores as available the acceleration can not increase further. On the contrary, overheader due to switching of threads starts to decrease performance.

After using 12 threads we observe a stagnation or even a decrease of acceleration performance.

Please note that some threads, i.e. some experimental conditions, can be computationally more demanding that others. This can lead to a decrease of acceleration.

Clone this wiki locally