Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop 平行于;“用于循环”;_For Loop_Parallel Processing - Fatal编程技术网

For loop 平行于;“用于循环”;

For loop 平行于;“用于循环”;,for-loop,parallel-processing,For Loop,Parallel Processing,我第一次尝试在python中并行化for循环 这是我最初的for循环: 序列中的i的: wchk_矩阵(i,2,wchk) 函数应迭代序列并更新矩阵“wchk”。 问题是我有1000个序列,所以速度有点慢。 这就是为什么我想把它并行化,有人知道怎么做吗 我试过这样的方法,但没用: 以mp.Pool(4)作为池: map(wchk_矩阵,[wchk_矩阵(i,2,wchk)表示序列中的i]) 非常感谢您的帮助。来自: map(func,iterable[,chunksize]) map()内

我第一次尝试在python中并行化for循环

这是我最初的for循环:

序列中的i的
:
wchk_矩阵(i,2,wchk)
函数应迭代序列并更新矩阵“wchk”。 问题是我有1000个序列,所以速度有点慢。 这就是为什么我想把它并行化,有人知道怎么做吗

我试过这样的方法,但没用:

以mp.Pool(4)作为池:
map(wchk_矩阵,[wchk_矩阵(i,2,wchk)表示序列中的i])
非常感谢您的帮助。

来自:

  • map(func,iterable[,chunksize])

    map()
    内置函数的并行等价物(它只支持一个iterable参数,对于多个iterable,请参见
    starmap()

  • starmap(func,iterable[,chunksize])

    类似于
    map()
    ,不同的是iterable的元素应该是作为参数解包的iterable

    因此,
    [(1,2)、(3,4)]
    的一个可数导致
    [func(1,2),func(3,4)]

    3.3版中的新版本

wchk_matrix
需要三个参数,因此需要创建包含三个值的元组列表:

以mp.Pool(4)作为池:
starmap(wchk_矩阵,[(i,2,wchk)表示序列中的i])
但请注意,一旦多次复制数据以填充列表,并且每次解释器为池创建fork时都会复制数据,对
wchk
的任何就地修改都将被忽略。最好的方法是计算一个值并返回,因此将所有结果收集到一个
starmap
实际返回的列表中