我正在尝试并行化以下代码,当我发现运行此代码实际上使用了我计算机的所有内核(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])
python2 script.py
和python3 script.py
都使用所有内核。是否已将numpy预配置为使用所有内核?否则,有人可以向我解释如何确定并行执行哪些行吗?