入力サイズに相対的な数のプロセッサを必要としない並列アルゴリズムを使用して、問題の計算の複雑さを軽減することは可能ですか(スラッシュで例を提供できます)?
入力サイズに相対的な数のプロセッサを必要としない並列アルゴリズムを使用して、問題の計算の複雑さを軽減することは可能ですか(スラッシュで例を提供できます)?
回答:
O(1)プロセッサを意味する場合は、いいえ、計算の複雑さを減らすことはできません。
各プロセッサで実行される作業を並べ、1つのプロセッサで実行するだけです。同期が心配な場合は、1つのプロセッサで簡単にエミュレートできます。
粗粒度の並列アルゴリズムの新しい分野があり、実行時間(およびその他の計算リソースの消費)は、多くの場合自然な仮定nの下で、独立したパラメーターn(入力サイズ)およびp(プロセッサーの数)の関数と見なされます。>> P。
良い出発点は、「バルク同期並列処理」をググることです。
このペーパーに興味があるかもしれません:
Selim Aklによるリアルタイム並列計算における超線形性能。
「シーケンシャルソリューションはnプロセッサパラレルソリューションよりも倍以上遅い」という計算上の問題の例を示しています。これは、「計算問題」の概念を創造的に解釈することによって行われます。
しかし、複雑さは変わりません。
「1プロセッサでは計算できませんが、2で計算できます。」
これは、両方のプロセッサがTMまたはより強力でないモデルであると想定して、不可能です。wikipediaから、マルチテープマシンの場合:
このモデルは、直感的にシングルテープモデルよりもはるかに強力に見えますが、kがどんなに大きい場合でも、マルチテープマシンは、二次的に長い計算時間のみを使用してシングルテープマシンでシミュレートできます(Papadimitriou 1994、Thrm 2.1)
また、マルチヘッドマシンについては、Walter J. SavitchおよびPaul MBVitányiによる「ヘッドを備えたマルチヘッドチューリングマシンの線形時間シミュレーション-ヘッドへのジャンプ」から:
このペーパーの主な結果は、テープごとに複数の読み書きヘッドがあり、「特定のヘッドを別の特定のヘッドの位置にシフトする」という追加の1つの移動シフト操作があるチューリングマシンがある場合、効果的に線形時間でシミュレートする、テープごとに単一の読み書きヘッドを備えたマルチテープチューリングマシン。つまり、元のマシンが時間T(n)で動作する場合、シミュレーションマシンは一定のcに対して時間cT(n)で動作します。
おそらく「並列または」(2つの関数がブール値を返す場合、どちらかがtrueを返すかどうかを通知します(両方ではなく、いずれかが終了に失敗する可能性がある場合))は、あなたが話していることかもしれません:計算できません1プロセッサで計算しますが、2で計算できます。
ただし、これは、プロセスがブラックボックスとして与えられているか、プロセスを自分で解釈できる説明として与えられているかなど、使用する計算モデルに大きく依存します。