Якщо у вас є кілька процесорів, які можуть працювати паралельно, ви можете обчислити будь-яку потужність до потужності (2 ^ k) у k кроках. Наприклад: Щоб обчислити , ви обчислите:M15
Етап 1: Обчисліть M2
Етап 2: Обчисліть і M 4 = M 2 ∗ M 2M3=M2∗MМ4= М2∗ М2
Етап 3: Обчисліть і M 8 = M 4 ∗ M 4М7= М4∗ М3М8= М4∗ М4
Етап 4: Обчисліть М15= М8∗ М7
Це на одне множення більше, ніж обчислення у трьох множеннях і підняття М 5 до третьої потужності в інших двох множеннях, але має бути швидше, якщо у вас є два процесори. Для довільно високих потужностей вам знадобиться більше процесорів.М5М5
Якщо ви використовуєте алгоритм грубої сили для множення, множуючи рядок на стовпчик, ви можете заощадити деякий час, обчисливши один рядок продукту, а потім негайно використовуючи цей рядок для наступного продукту. Це допоможе в обчисленні коли ми можемо почати обчислювати M 3, як тільки буде обчислений перший рядок M 2 ; це не було б корисно для M 4, оскільки нам потрібні і рядки, і стовпці M 2 . Для великих потужностей ви, можливо, могли б домовитись, які повноваження обчислити.М3М3М2М4М2
І після публікації цього стає очевидним , що ви можете використовувати кілька процесори дуже легко: Ви починаєте шляхом обчислення першого рядка . Коли у вас є цей рядок, у вас є вся інформація, необхідна для обчислення першого рядка M 3 = M 2 ∗ M , тому ви обчислюєте другий ряд M 2 і перший ряд M 3 паралельно. Потім можна обчислити третій ряд M 2 , другий ряд M 3 і перший ряд M 4 паралельно тощо.М2=М∗ ММ3= М2∗ ММ2М3М2М3М4
Це зробить набагато більше операцій, ніж потрібно (наприклад, 14 матричних множень на замість мінімальних 5 або 6 чотиристадійного методу). Якщо потужність не велика порівняно з кількістю процесорів, це все одно буде швидше. Але обчислення М 1000 за допомогою чотирьох процесорів за допомогою цього методу буде неефективним; це зробити оптимально, було б цікавою проблемою.М15М1000
Комбінування підходів: використовуючи, наприклад, чотири процесори, ви можете обчислити AB, ABC, ABCD та ABCDE майже паралельно, обчислюючи кожен продукт по одному рядку. Це дозволяє обчислити всі чотири до M 5, використовуючи чотири процесори приблизно за той самий час, як один продукт з одним процесором.М2М5
З огляду на ці чотири результати та оригінальний M, ви можете обчислити чотири матриці до M 25 за один і той же час за умови, що матриці мають щонайбільше п’ять потужностей один від одного. Таким чином, кожна потужність до M 25 може бути обчислена приблизно в два рази більше часу одного матричного продукту процесора.М6М25М25
З урахуванням цих матриць усі матриці до і деякі більше до M 125 можна обчислити в три рази більше часу одного матричного продукту, якщо є чотири процесори. Для процесорів k це повинно бути щонайменше потужністю k ( k + 1 ) 2 .М108М125k ( k + 1 )2