在python中进行并行编程,卸载到GPU

时间:2015-10-15 09:33:27

标签: python parallel-processing anaconda gpu-programming

在我看来,我正在编写包含许多非常可并行化的for循环的科学python代码。 在这些循环中,我从openource python2.7库中调用了很多属于类的函数,因此转移到另一种语言是不可行的。除非它可以与python接口。 我有两个不同的代码 - >

  1. 在最里面的循环中调用C-binaries *,这是瓶颈,因为它只能使用一个线程,然后将结果写入磁盘。

  2. 在最里面的循环中调用开源C PyObject函数**,保存在ndarray中,在外循环中写入磁盘

  3. 是否有可能将这些中的for-loop卸载到gpu中?(nVidia GTX gpu) 例如。使用OpenACC(Anaconda)/ PGI,PyCUDA或PyOpenCL甚至是OpenCV?

    (*依赖于存储临时数据GB的路径,例如$ HOME / tmp /) (**较少可并行化,因为它们依赖于先前的迭代..)

    输入是CT图像 - > 3d np.arrays签名的int16值

    我有八个CPU线程,我可以完全使用多处理。然而我的GPU什么都不做。假设8 GB RAM,使用< 2 GB。使用Arch-Linux。

    PS。我打开硬件升级的建议 - >我从事癌症研究,这使得资金成为可能。

0 个答案:

没有答案