-
Notifications
You must be signed in to change notification settings - Fork 29
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.
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.
- Installation and system requirements
- Setting up models
- First steps
- Advanced events and pre-equilibration
- Computation of integration-based prediction bands
- How is the architecture of the code and the most important commands?
- What are the most important fields of the global variable ar?
- What are the most important functions?
- Optimization algorithms available in the d2d-framework
- Objective function, likelhood and chi-square in the d2d framework
- How to set up priors?
- How to set up steady state constraints?
- How do I restart the solver upon a step input?
- How to deal with integrator tolerances?
- How to implement a bolus injection?
- How to implement washing and an injection?
- How to implement a moment ODE model?
- How to run PLE calculations on a Cluster?