Почему этот код использует все ядра моего компьютера? - PullRequest
0 голосов
/ 10 мая 2019

Я пытался распараллелить следующий код, и мое удивление было, по меньшей мере, большим, когда я обнаружил, что для запуска этого кода фактически используются все ядра моего компьютера (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.py и python3 script.py используют все ядра. Numpy предварительно настроен на использование всех ядер? В противном случае, кто-нибудь может объяснить мне, как определить, какие строки выполняются параллельно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...