Имея двумерный массив, я делаю следующую операцию:
rows_count = matrix.shape[0]
mr = []
for i in range(0, rows_count-1):
for j in range(i+1, rows_count):
mr.append(matrix[i,:] ^ matrix[j:])
Он делает именно то, что я хочу, но он слишком медленный для больших входных массивов. Вот почему я хотел использовать multiprocessing
, чтобы ускорить мой код:
import multiprocessing as mp
import numpy as np
pool = mp.Pool(mp.cpu_count())
mr = pool.map(np.bitwise_xor,[(matrix[i,:],matrix[j,:]) for i in range(0, rows_count-1) for j in range(i+1, rows_count)])
pool.join()
pool.close()
Однако этот код работает в пару раз медленнее. Как я могу правильно использовать multiprocessing
(или другую концепцию), чтобы ускорить мой код?