为什么这段代码要用我电脑里的所有核心?

2024-09-28 03:18:18 发布

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

我正试图并行化下面的代码,我的惊喜是很大的,至少可以说,当我发现运行这段代码实际上使用了我的计算机的所有核心(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是否预先配置为使用所有内核?否则,有人能解释一下如何确定哪些行是并行执行的吗?你知道吗


Tags: 代码numpynpserialscriptrandomframetr

热门问题