並列計算の制限


21

私はPのアルゴリズムの並列化について知られていることについて広い意味で興味があります。このテーマに関する次のウィキペディアの記事を見つけました。

http://en.wikipedia.org/wiki/NC_%28complexity%29

この記事には次の文が含まれています。

NC = Pであるかどうかは不明ですが、ほとんどの研究者はこれが間違っていると疑っています。

これは理にかなっていますか?Pの問題を並列処理を使用して高速化できない既知のケースはありますか?



はい、それは理にかなっています。パパディミトリウによる本「計算の複雑さ」の章は、この主題を学ぶための良い説明を与えます。
伊藤剛

回答:


17

かどうかさえ知られていない NC = Pわかりが、P完全問題は本質的に並列化が難しいようです。これらには、線形計画法とHorn-SATが含まれます。(対照的に、NCの問題は並列化がかなり簡単に思えます。)

質問を見る NCとPの間の問題:このリストからいくつ解決されましたか?を。参考資料(無料ダウンロードで利用できるようになった古典的な教科書へのリンクを含む)、およびPに存在するが並列化可能ではないことがわかっている問題に関する詳細な議論。

質問を見る NCとP間の複雑度クラスの構造については、一般化ラダーの定理の。簡単に言えば、それらが異なる場合、NCとPの間には厳密に無限に多くの複雑度クラスがあります。

質問NC = Pの結果を参照してくださいP内の複雑度クラスの階層の崩壊を、おそらくPSPACE = EXPのようなより起こりそうにない崩壊に増幅することができる、Ryan Williamsによる素晴らしいデモンストレーションのために。

Horn-SATがP-completeであり、上記のリンクの1つの結果は、大規模な計算のみを使用するように書き換えることができない限り、データベース内の一般的なSQLクエリを並列化できないように見えることを指摘する価値があります合理的な量のストレージ。これは不可解な矛盾です- 圧縮制限があると述べることは非常に議論の余地がないと思いますがデータベースクエリを並列化できるという仮定に基づいて構築されているように見える記事をよく見ます。


確かに、データベースクエリの特定の部分を並列化できなかったり、少なくとも簡単な方法で並列化できないことがあります。ただし、データベースクエリ(物事を単純にするためのサブクエリを除く)は、結合されたテーブルに対するテーブル全体のスキャンに削減でき、結合されたテーブル自体は常に並行してスキャンできます。このため、Oracleで並列処理の設定を増やすと、インデックスではなく全テーブルスキャンを使用する傾向が強くなります。
sclv

@sclv:これは本当ですが、一般に、中間結合は入力サイズで指数関数的になりますか?そのため、結合によって並列化できますが、指数関数的な数のタプルをスキャンする必要があります。
アンドラスサラモン

1
ここで入力サイズをどう考えますか?また、m n o交差結合がある場合は、その数のタプルを正確に返すことができる可能性が常にあります。つまり、最悪の場合により良い境界はありません。そして、これは理論的よりも実用的ですが、一般的に、とにかく行に対する述語のパフォーマンスの並列化について心配するのではなく、IOスループットについて心配します。
sclv

10

既知のケースがあった場合、PとNCを分離できます。しかし、P-completeであることが知られている(つまり、対数空間の削減)多くの問題があり、NP =完全問題がP = NPに対して行うのと同じ種類のP = NCを示す障壁を提示します。その中には、線形計画法とマッチング(および一般的な最大フロー)が含まれます。

Ketan Mulmuley は、 1994年にPとNPの弱い形式(ビット操作なし)を分離した結果を証明しました。ある意味で、P対NPの現在のプログラムは、中断したところから始まります(非常にゆるい方法で)。

本「並列計算制限」には、これに関する詳細が記載されています。


2
気をつけて。マッチングはP完全ではないと思います。マッチングは、多項式同一性テスト(グラフのTutte行列の行列式がまったくゼロであるかどうかをテストする)によってRNCで行われることが知られています。P-completeの場合、P = RNCが崩壊する可能性は低くなります。
スリムトン

ああ。あなたが正しい。最大フローにこだわる必要がありました。修正してくれてありがとう。
スレシュヴェンカト

0

私は、同様の質問に答え並列化によって高速化することができない科学技術計算における任意のfamous問題/アルゴリズムはありますには、計算科学のサイトが。このような問題の非常に具体的なインスタンスに関する実用的な視点を提供するため、ここで引用させてください。

アイコナール方程式を解くための(有名な)高速マーチング法は、並列化によって高速化することはできません。アイコナール方程式を解く他の方法(高速掃引法など)があり、これらは並列化により適していますが、ここでも(並列)高速化の可能性は限られています。

アイコナール方程式の問題は、情報の流れがソリューション自体に依存することです。大まかに言って、情報は特性(光学系の光線)に沿って流れますが、特性はソリューション自体に依存します。また、離散化されたアイコナール方程式の情報の流れはさらに悪化し、並列高速化が必要な場合は追加の近似(高速掃引法に暗黙的に存在するような)が必要になります。

並列化の難しさを確認するには、SethianのWebページの例のような素敵な迷宮を想像してください。ラビリンスを通る最短経路上のセルの数(おそらく)は、対応する問題を解決する任意の(並列)アルゴリズムのステップ/反復の最小数の下限です。

(下限は証明が難しいことで有名であり、アルゴリズムで使用される操作に関する合理的な仮定を必要とすることが多いため、「(おそらく)is」と書いています。)

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