如何对for循环中的代码进行多处理/并行化

2024-06-26 12:53:32 发布

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

我是python新手,但我做了一个需要很长时间来计算的程序,只使用了我12%的CPU。我想如果它使用我所有的CPU,它会更快完成-尤其是在一个为lopp。我查看了python教程和文档,但现在完全搞不清楚了

我在datacube.py中有一个简单的代码:

def datacube(x,y,z):
    xt = x * y * z
    return xt

在我的主程序中:

import multiprocessing as mp
import numpy as np
import datacube

x_range = np.arange(1,50,5)
y_range = np.arange(2,200,1)
z_range = np.arange(3,300,3)

x = y = 5

dump = []
data3 = [mp.Process(target=datacube.datacube, args=(x,y,z)) for z in z_range]
dump.append(data3)

我只想基本上(x\u范围)*(y\u范围)*(z\u范围),因为我的程序是嵌套for循环。我已经尝试了我所知道的一切,但都没有用

我不知道地图,进程,池或其他更好。我只想开始。提前谢谢


Tags: import程序forasnprangempcpu
1条回答
网友
1楼 · 发布于 2024-06-26 12:53:32

也许这能满足你的需要

import numpy as np
from itertools import product

x_range = np.arange(1,50,5)
y_range = np.arange(2,200,1)
z_range = np.arange(3,300,3)
list(np.prod(x) for x in product(x_range,y_range,z_range))

相关问题 更多 >