为什么此代码使用了计算机中的所有内核?

时间:2019-05-09 22:38:12

标签: python numpy parallel-processing

我正在尝试并行化以下代码,当我发现运行此代码实际上使用了我计算机的所有内核(numpy 1.15.1,Ubuntu 18.04、24个内核)时,我感到非常惊讶。 !!!

import numpy as np

if __name__ == '__main__':
    q = np.random.rand(200,3)
    bi = np.random.rand(2000)
    tr = np.random.rand(1000, 2000, 3)

    def serial_worker(frame):
        exponents = np.tensordot(frame, q, axes=(1, 1))
        exponentials = np.exp(1j * exponents)
        return np.tensordot(bi, exponentials, axes=1)

    amps = np.asarray([serial_worker(frame) for frame in tr])

enter image description here

python2 script.pypython3 script.py都使用所有内核。是否已将numpy预配置为使用所有内核?否则,有人可以向我解释如何确定并行执行哪些行吗?

0 个答案:

没有答案