Я пытаюсь умножить 500-1000 матриц и повторить это примерно 1000 раз. Я успешно распараллелил повторяющуюся часть и получил ускорение в 2 раза (для параметров, которые я использую). Можно ли как-нибудь распараллелить умножение матриц?
Поскольку умножение матриц не является коммутативным, я не думаю, что смогу сделать это тривиально, используя Pool.map (), как я делал для шага повторения. Единственный способ, которым я могу подумать о распараллеливании этого, - это разделить 1000 матриц на наборы из 2 смежных и умножить каждую по отдельности, чтобы получить 500 матриц, а затем повторить шаг. Но я не знаю, есть ли какой-либо заранее написанный алгоритм для этого или какой-либо простой способ сделать это.
например -
![enter image description here](https://i.stack.imgur.com/lliLH.png)
Пожалуйста, предложите мне метод, или даже какая-то справка подойдет.