Как решить, векторизация против распараллеливания - PullRequest
1 голос
/ 25 сентября 2019

Как решить, векторизация против распараллеливания?В качестве примера:

import time
import numpy as np
from multiprocessing import Pool

def square(x):
    return x ** 2

N = 100000000
K = 10
x = np.random.normal(size=N)
begin = time.process_time()
x ** 2
print(time.process_time() - begin)
pool = Pool(K)
begin = time.process_time()
pool.map(square, list(range(N)))
pool.close()
print(time.process_time() - begin)

>> 0.4307680000000005
>> 27.385416

В этом случае векторизация выполняется намного быстрее.Не уверен, что будет исключение.Если нет или 90% векторизации падежа быстрее, чем распараллеливание, то я всегда должен расставлять приоритеты векторизации.

...