私があなたに尋ねたいのは: 私は大きなソース コードのいくつかのステップを持っています (各ステップには仮想の計算時間と仮想の通信データがあります。レイテンシをモデル化したいので仮想のみを使用していますが、どうにかして測定することができました)ソースコード全体でそれらを参照してください) . 計算時間の間コードをスリープさせ、通信データと同等のデータを転送することで、これをテストする必要があります。いくつかの構成モデルを同じに提案できますか? 私の目的は、プログラムの全体的な実行時間を最小限に抑えることです。そのため、明らかにプロセスのオーバーヘッドを減らしたいと考えています。
私の心を打つ最も単純なものは次のとおりです。
- すべてのプロセスで計算を行い、ルート プロセスへの非同期呼び出しを行うことで仮想データを送信します。
- 同期呼び出しでも同じことを行います。
- 通信時間は通信データと線形であると仮定します。いくつかのアルゴリズムを使用して、以前はタスクを各プロセスに分割しました (負荷分散から着想を得ています)。
- ルート プロセスで最初のタスクから開始し、次のプロセスにデータを送信し、そのプロセスでスリープして表示します。
この戦略が大きな違いを生むかどうか、アイデアを教えてください。または検証してください。