相关疑难解决方法(0)

如何并行化一个简单的Python循环?

这可能是一个微不足道的问题,但我如何在python中并行化以下循环?

# setup output lists
output1 = list()
output2 = list()
output3 = list()

for j in range(0, 10):
    # calc individual parameter value
    parameter = j * offset
    # call the calculation
    out1, out2, out3 = calc_stuff(parameter = parameter)

    # put results into correct output list
    output1.append(out1)
    output2.append(out2)
    output3.append(out3)
Run Code Online (Sandbox Code Playgroud)

我知道如何在Python中启动单线程,但我不知道如何"收集"结果.

多个过程也可以 - 对于这种情况最简单的事情.我正在使用当前的Linux,但代码应该在Windows和Mac上运行.

并行化此代码的最简单方法是什么?

python parallel-processing

200
推荐指数
11
解决办法
25万
查看次数

在 Python 3 中并行化“for”循环

我正在尝试对 MODIS 卫星数据进行一些分析。我的代码主要读取尺寸为 1200 x 1200 (806*1200*1200) 的大量文件 (806)。它使用 afor loop并执行数学运算。

以下是我读取文件的一般方式。

mindex=np.zeros((1200,1200))
for i in range(1200):
    var1 = xray.open_dataset('filename.nc')['variable'][:,i,:].data
    for j in range(1200):
        var2 = var1[:,j]
        ## Mathematical Calculations to find var3[i,j]## 
        mindex[i,j] = var3[i,j]
Run Code Online (Sandbox Code Playgroud)

由于要处理大量数据,该过程非常缓慢,我正在考虑对其进行并行化。我尝试用 做一些事情joblib,但我一直无法做到。

我不确定如何解决这个问题。

python multiprocessing python-multithreading python-3.x python-multiprocessing

11
推荐指数
1
解决办法
1万
查看次数

如何从并行进程中运行的函数中检索值?

多处理模块对于python初学者来说非常困惑,特别是那些刚刚从MATLAB迁移并且使用并行计算工具箱变得懒惰的人.我有以下功能需要大约80秒运行,我想通过使用Python的多处理模块来缩短这个时间.

from time import time

xmax   = 100000000

start = time()
for x in range(xmax):
    y = ((x+5)**2+x-40)
    if y <= 0xf+1:
        print('Condition met at: ', y, x)
end  = time()
tt   = end-start #total time
print('Each iteration took: ', tt/xmax)
print('Total time:          ', tt)
Run Code Online (Sandbox Code Playgroud)

这按预期输出:

Condition met at:  -15 0
Condition met at:  -3 1
Condition met at:  11 2
Each iteration took:  8.667453265190124e-07
Total time:           86.67453265190125
Run Code Online (Sandbox Code Playgroud)

由于循环的任何迭代都不依赖于其他循环,我尝试从官方文档中采用此服务器进程来在单独的进程中扫描范围的块.最后我想出了vartec对这个问题的回答,可以准备以下代码.我还根据Darkonaut对当前问题的回答更新了代码.

from time import time 
import multiprocessing as …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multiprocessing python-3.x python-multiprocessing

7
推荐指数
1
解决办法
139
查看次数