并行化python for循环

2024-04-25 18:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python并行一些代码。以串行方式运行我的代码大约需要24小时,但是,有一个for循环,其中每个迭代都独立于前一个迭代,因此这是并行化的理想情况。下面是我试图用代码实现的一个简单示例

import scipy as sci
from multiprocessing import Pool

def mycode(args):
  for x in range(0,2000)
    y = sci.fft(data[x,:],axis=1)
    output[x,:]=y
  return output

if __name__=="__main__":
  pool=Pool(processes = 8)
  output= pool.map(mycode(args),2000)  

然而,从上面看,我可以看到尽管python生成了9个python进程,但实际上只有一个进程在使用CPU或内存。其他的都是0%。用for循环使用Pool的正确方法是什么?你知道吗


Tags: 代码importforoutput进程方式情况args
1条回答
网友
1楼 · 发布于 2024-04-25 18:21:37

只要这个数据变量被定义为全局变量,它就应该工作。你知道吗

import scipy as sci
from multiprocessing import Pool

def mycode(x):
    y = sci.fft(data[x,:],axis=1)
    return y

if __name__=="__main__":
  pool=Pool(processes = 8)
  output= pool.map(mycode,range(2000)) 

相关问题 更多 >