hi, i am solving a system of ordinary differential equations using the odeint function. Is it possible (and if yes how) to parallelize easily this kind of problem?
+1
A:
Numerically integrating an ODE is an intrinsically sequential operation, since you need each result to compute the following one (well, except if you're integrating from multiple starting points). So I guess the answer is no.
static_rtti
2010-09-01 12:21:27
+2
A:
The answer above is wrong, solving a ODE nummerically needs to calculate the function f(t,y)=y' several times per iteration, e.g. four times for Runge-Kutta. But i dont know any package for python doing this.
tillsten
2010-09-02 05:35:40
I'm guessing that you are saying that static_rtti's answer is incorrect and that, since f(t,y)=y' is calculated several times per iteration, one can parallelize solving the ODE on a per step basis (by having 4 processors for instance which each calculate a f(t,y)=y'). However, in the Runge-Kutta algorithm, each f(t,y)=y' that we solve for is dependent on the previous y' that has been calculated (to find the y that we use in f(t,y)) and is therefore serial.
Justin Peel
2010-09-07 17:03:34