我最近偶然发现了boost.odeint库,我对它的可能性和可配置性感到惊讶。但是,由于广泛使用了scipy.integrate.odeint (它本质上是fortran中ODEPACK的包装器),我想知道它们的性能如何比较。我知道boost.odeint还附带了并行化,这在scipy中是不可能的(据我所知),这将大大提高性能,但我要求的是单一核心情况。然而,由于在这种情况下,我必须将boost.odeint (使用cython或boost.python)包装到python中,也许你们中已经有人这样做了?这将是一个伟大的成就,因为所有的分析可能性在python中都要高级得多。
发布于 2016-04-14 07:52:37
就我所知,通过比较Boost.odeint和scipy.integrate.ode的可用步进器列表,两者实现的唯一算法是多尔曼德-普林斯五阶步进器dopri5。您可以通过对Boost.odeint使用this Cython wrapper来比较Python语言中该算法的两种实现的效率(它不会公开Boost.odeint提供的所有分步器,但确实会公开dopri5)。
根据您对“测试性能”的定义,您还可以比较不同的算法,但这显然与比较同一算法的两个实现不是一回事。
https://stackoverflow.com/questions/35203474
复制相似问题