什么是典型的科学python优化路径?

时间:2015-02-09 05:16:32

标签: python numpy hpc

这可能是一个相当普遍的问题,我试图使基于python的科学计算代码适应实时执行。现在,保守地说,单线程实现对于实时处理执行的速度大约是1000倍。但是,我不确定提高性能的下一步是什么。

我已经完成了明显的事情。所有繁重的工作都是通过numpy数组计算或使用Cython内置的模块完成的。大约50%的时间用于计算FFT和进行数组乘法,另外50%用于Cython例程。 Cython程序本身并不完美,但它们也不是太糟糕。我还对代码进行了描述,以确保其他一些不那么重要的例程不会占用比我想象的更多的时间。

好消息是代码很容易适应并行处理。我实际上已经使用python进程完成了这项工作,它几乎可以线性扩展到计算机中的CPU核心数。但是,这只能让我大约提高20倍的速度。

那么,我从哪里开始呢?在C中将代码重写为Python模块,可能直接使用Cpython API?完全放弃Python的其他语言?尝试使用PyCUDA或openCL实现代码?还有其他什么呢?

0 个答案:

没有答案