Python多处理加速

时间:2018-05-18 12:29:57

标签: python python-2.7 python-multiprocessing

想象一下" heavy_thinking"做了一些繁重的计算,需要很长时间才能运行。在函数结束时,它返回它必须写入的indize以及属于那里的数据。然后将数据写入我的数组中的相应位置。

理论上,它可以大量运行并改善运行时间。实际上,虽然将大量数据移入和移出进程需要相当长的时间。

import multiprocessing
import numpy

cores = 4


def heavy_thinking(data):

    # heavy thinking

    return data / 4, data % 4, [data, data + 1]


if __name__ == "__main__":
    calc_pool = multiprocessing.Pool(cores)
    list = [0, 1, 2, 3, 4, 5, 6, 7]
    array = numpy.empty([2, 4], dtype = object)

    print array
    data = calc_pool.map(heavy_thinking, list)

    for elements in data:
        array[elements[0]][elements[1]] = elements[2]

    print array

    calc_pool.close()

那么我还有其他选择吗?

0 个答案:

没有答案