並列計算では、スピードアップの方程式は
しかし、超線形スピードアップとはどういう意味ですか?それは理論的なものですか?方程式で説明してもらえますか?
並列計算では、スピードアップの方程式は
しかし、超線形スピードアップとはどういう意味ですか?それは理論的なものですか?方程式で説明してもらえますか?
回答:
方程式を使って:そうではありません。
超線形スピードアップは、通信プロセスを考慮した後でも単純に計算されたスピードアップを超えることから生じます(フェージングですが、これはまだボトルネックです)。
たとえば、実行にかかるシリアルアルゴリズムがあるとします。あなたは持っているので、素朴な高速化があり、コアを、またはそれを取るが、それは、アカウントメモリ転送、アルゴリズムに若干の変更、並列化の時間にあなたの方程式の撮影のように計算されるべきです。
スピードアップが1024xよりも低くする必要があり、時にはスピードアップが大きい起こるので、我々はそれを呼び出す。
それはどこから来たのですか?
いくつかの場所から:キャッシュの使用(レジスタ、メインメモリ、または大容量ストレージに適合し、非常に多くの場合、処理ユニットがサブタスクごとに全体的に多くのレジスタを提供します)、メモリヒットパターン、単純に優れた(またはわずかに異なる)アルゴリズム、シリアルの欠陥コード。
たとえば、結果を求めてスペースを検索するランダムプロセスは、一度により多くのスペースをカバーするサーチャーに分割されるため、ソリューションをより速く見つける可能性が高くなります。副産物があります(バブルソートのように要素を交換してGPUに切り替えると、すべてのペアが一度に交換されますが、シリアルはポイントまでしか交換されません)。
分散システムでは、通信はさらにコストがかかるため、プログラムはメモリ使用量をローカルにするように変更されます(メモリアクセスも変更され、順次アプリケーションとは異なる方法で問題が分割されます)。
そして最も重要なのは、逐次プログラムが並列バージョンと理想的に同じではないということです-テクノロジー、環境、アルゴリズムなどが異なるため、それらを比較することは困難です。
「並列計算入門」第2版、Ananth Grama、2003年からの抜粋
理論的には、高速化は処理要素の数を超えることはできません。 最良の順次アルゴリズムが単位の時間で単一のプロセッシングエレメントの特定の問題を解決する場合、以上の時間を費やさなければ、プロセッシングエレメントでスピードアップが得られます。各処理要素が問題の解決に費やす時間未満の場合にのみ 、超える高速化が可能です。 この場合、単一のプロセッシングエレメントがプロセッシングエレメントをエミュレートし、未満の時間単位で問題を解決できます。
スピードアップは、定義上、最良の逐次アルゴリズムに基づいて計算される ため、これは矛盾です。
したがって、このコンテキストでの「スーパーリニア」という名前は、スピードアップの定義に由来しています。
私の素人の説明はそれがどのように機能するかの想像力を助けることができます。
HPC相互接続アーキテクチャーがコアの内部状態間の参照を可能にする場合、特定のタイプのアルゴリズムは超線形スピードアップにつながります。その理由は情報(および熱力学)理論であり、以下の説明で簡単に説明できます。
それぞれに3ビットの可能な状態を含む2つのシステムを考えます。
011
そして 101
このシステムの可能な状態の最大数は2 * 2 ^ 3 = 16です。
次に、これらの2つのアンサンブルを組み合わせて、1つの組み合わせを作成します。可能な状態空間は6ビットです。
011101
このシステムの可能な状態の最大数は2 ^ 6 = 64です。結合システムでは、64/16 = 4倍のエントロピー増加が可能です。
コアが仮想的により多くの相互参照を持つことができるため、より多様な内部状態を持つ集合の構成は、指数関数的に大きな「スピードアップ」につながります。
化学では、システムが結合するとエネルギーが放出されます(核融合と考えてください)。そのエネルギーは、複合システムのより多くの状態に対処する可能性からきています。
私が読んだソースはすべて、異なるコアの状態ビット間で相互参照する機能がなかった、孤立したコアの並列アルゴリズムを説明したものでした。結合された状態のエントロピー増加の観点から、超線形の高速化がどのように可能であるかを想像できます。
情報理論の詳細については、この動作の正確な熱力学的性質に関するWikipediaの記事https://en.wikipedia.org/wiki/Gibbs_paradoxの「混合パラドックス」を参照してください。
これは、人間と人間のコミュニケーションに哲学的な意味合いがあり、テキストを入力して本を読むことと比べて、生の音声会話の重要性があります。