Как решить, векторизация против распараллеливания?В качестве примера:
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% векторизации падежа быстрее, чем распараллеливание, то я всегда должен расставлять приоритеты векторизации.