マルチスレッドC ++プログラムがあります。スイッチを介して接続されている別のコンピュータで実行できる場合は、スループットが向上すると思います。すべて同じオペレーティングシステム(Ubuntu)を使用してください。コードを変更せずにこれを行う方法はありますか?コードを変更する必要がある場合は何を探すべきですか?
答え1
コードを変更しないと不可能な場合が多いです。
マルチスレッドプログラムは単一コンピュータのプロセッサを利用する。接続されているコンピュータのネットワークで同じプログラムを実行し、そのプログラムの個々のインスタンスが互いに通信できるようにするには、コードが異なるコンピュータで実行されているプログラムの複数のコピー間で明示的なメッセージングを実行する必要があります。群れ。
これを実行できるライブラリがあります。かなりよく知られている標準が呼び出されます。メッセージングインターフェース、単にMPIでMPIの実装は、ほとんどの無料のUniceに存在します。
プログラムによる処理が以下の場合ぎこちなく平行これは、プログラムの複数のコピーが互いに通信することなく入力データの集まりを処理できることを意味します。これは解決がより簡単な問題であり、GNUを使用して実行できますparallel
。
最終的には、プログラムが実際に行うことによって異なります。