逐次乗算よりも効率的な並列行列指数アルゴリズムはありますか?


11

実数の行列の累乗(正の整数)を見つけるために1つ必要です。効率的な行列乗算アルゴリズムはたくさんありますが(たとえば、一部の並列アルゴリズムはCannonのDNSです)、行列の能力を正確に見つけることを目的としたアルゴリズムであり、行列乗算の逐次実行よりも効率的ですか?特に並列アルゴリズムに興味があります。


1
何を試しましたか?どこで行き詰まりましたか?どのような研究をしましたか?タイトルの他に、質問はどこにありますか?問題の決定版(タイトルから)の場合、答えは「はい」ですが、すでに知っていますよね?

2
@TomR この質問はおそらくあなたにとって興味深いものです
adrianN

1
たぶんこのようなものですか?またはあなたは何か他のものを探していますか?アプリケーションのサイズと能力は何ですか?
邪悪な

1
n≥4の場合、n-1未満の乗算でn乗を計算できます。大きな行列の場合、通常、乗算の最小数を見つけることは価値があります(たとえば、6でn ^ 15を計算する簡単な方法があります。乗算、ただし5)で実行できます。次に、同じ原理を適用して、より難しい逐次乗算の最小数を見つけることができます。
gnasher729

1
また、利用可能な並列処理の量も考慮する必要があります。「並列処理」とは、本来なら使用されないはずのリソースを利用することです。行列乗算の実装がすでに効率的に利用可能なすべてのリソースを使用できる場合、行列の累乗を計算するために利用できるものは他にありません。
gnasher729 2016

回答:


5

並列で動作する複数のプロセッサがある場合、kステップで電力(2 ^ k)までの電力を計算できます。例:を計算するには、次のように計算します。M15

ステージ1:M 2を計算するM2

ステージ2:およびM 4 = M 2M 2を計算するM3=M2MM4=M2M2

ステージ3:およびM 8 = M 4M 4を計算しますM7=M4M3M8=M4M4

ステージ4:M 15 = M 8M 7を計算しますM15=M8M7

これは、1個の乗算以上の計算よりも 3回の乗算にして引き上げM 5を別の2回の乗算で第三電源にしていますが、2つのプロセッサがあれば高速にする必要があります。任意のハイパワーの場合、より多くのプロセッサが必要になります。M5M5

列ごとに行を乗算する乗算にブルートフォースアルゴリズムを使用する場合、製品の1つの行を計算し、すぐにその行を次の製品に使用することで、時間を節約できます。これは、M 2の最初の行が計算されるとすぐにM 3の計算を開始できるの計算に役立ちます。M 2の行と列の両方が必要なため、M 4ではそれほど役に立ちません。大規模なパワーの場合、おそらくどのパワーを計算するかを調整できます。M3M3M2M4M2

M2=MMM3=M2MM2M3M2M3M4

M15M1000

M2M5

M6M25M25

M108M125k(k+1)2


4

行列のべき乗で並列スピードアップを分析できる2つのレベルがあります。どの行列を乗算するかを決定する「マクロアルゴリズム」レベルと、並列処理で乗算自体を高速化できる「マイクロアルゴリズム」レベルです。

nnO(log2(n))O(n)

(注:ウィキペディアのページは一般的なマトリックス計算用です。マトリックスを2乗しているという情報を使用してさらに並列化できるかどうかはわかりません。)

AmA

AkO(log(k))

問題は、これを並列処理で打ち負かせることができるかどうかです。私は答えがノーだと主張します。

単純な理由は、二乗によるべき乗は本質的に動的プログラミングアルゴリズムであるためです。サブ結果を再利用することですべての作業をスキップできますが、これにより、並列処理を許可しないデータ依存関係が作成されます。データの依存関係を取り除くだけでなく、実行する必要がある作業量も大幅に増加します。

k

A1A2A3A4A5...Ak

これを並列化する自然な方法は明白です。結合性を悪用してを実行する必要がありますk2

(A1A2)(A3A4)(A5A6)...(Ak1Ak)

kO(log(k))

ただし、この方法でべき乗を実行すると、次のようになります。

(AA)(AA)(AA)...(AA)

A2

AknnAO(log2(n)log(k))O(nlog(k))


3

mlogm2m

A=SΛS1Am=SΛmS1
mO(1)m
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.