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