[SciPy-Dev] GSoC' 15 Ideas: define general integrators; parallelize integration; higher-order ODEs

Max Mertens max.mail at dameweb.de
Tue Mar 17 06:12:45 EDT 2015


@Geordie McBain, Benny Malengier: Thank you for your feedback, and for
the online/paper references.

@Benny:
> This for stiff problems and implicit methods! The python code would
> not care as long as normal arrays can be passed.
Do you mean it is needed, or difficult instead to implement for
stiff/implicit ODEs?

> Most specific implementations have their own datastructures however.
>
> Code like fipy casts PDE problems to equations which can be solved via
> pytrilinos, http://trilinos.org/packages/pytrilinos/ in parallel via
> MPI. You get out numpy arrays, internally something else is used.
>
> The cvode solver of sundials for stiff problems has a fully parallel
> implementation, and sundials has some RK methods in ARKode. I don't
> think any of the python bindings expose that at the moment. I suppose
> the mapping to parallel array is not straightforward. Having a look at
> the parallel implementation there might also give ideas though for a
> general interface.
> Pytrilinos interfaces parts of sundials via Rythmos
> (http://trilinos.org/docs/dev/packages/rythmos/doc/html/classRythmos_1_1ImplicitBDFStepper.html),
> but it's unclear to me if that is parallel or not. In any case, the
> data structures used are not ndarray, but must be mapped
> to Epetra.Vector. All far too high level abstraction to be usable in
> scipy. Scipy should focus on simple interfaces for ode/dae, but the
> existing examples of parallel implementation seem to indicate simple
> is no longer possible then.
>
> Whatever the approach, scipy should not redo work present in high
> level packages like pytrilinos, but instead offer the basis to start
> from, so people can evolve to those packages if needed.
If I understand you correctly, you suggest to not implement parallel
solvers, as those exist in other libraries already, but rather provide a
general interface to those?

What about the other ideas, a general interface to define RK (or other)
integrators, and methods to automate higher-order to first-order ODE
transformation?
Do you suggest something similar as a project for me?

Regards,
Max




More information about the SciPy-Dev mailing list