2017-07-17 16 views
-3

私はコアi7 6700kで3日間かかるCPU集約的なタスクを持っています。私はすでにスレッド16を使って作業しています。私はタスクをより多くのタスクに分割することができます。ネットワークで利用可能なCPU時間を利用する

私は現時点では、java cudaのスレッドを1000個まで使用することができます。

しかし、ホームネットワークに16コアを自由に使用できるようにしています。

私はそれぞれのコンピュータでちょっとしたことができますか、それを使ってノードを構築し、ノード内のすべてのコアがそのタスクで実行されているかどうか疑問です。

それが可能かどうか、どのような考えがありますか?

はあなた アンナ

+3

回答は**はい**です。しかし、もしあなたが "どのように"私たちはあなたの質問を閉じすぎるかと尋ねると、 – talex

+0

質問を改善するにはどうすればよいですか? – AnnaKlein

+1

私は分かりません。たぶん、あなたはネットワーキングと分散コンピューティングの大学のコースを取る場合: – talex

答えて

0
  1. まず、あなたの問題を理解していただきありがとうございます。
  2. スレッド数を増やすと問題がすぐに解決されることはなく、問題が増えます。
  3. IOバインド操作(ディスク内容の読み込み/一部の出力デバイスへのデータ書き込みなど)の場合、CPUはこの場合ヘルプを表示しません。
  4. 解析/暗号化/解読/計算の種類のものであれば、タスクを分割することができます(タスクの分割ロジックを識別することで、各スレッドが他のスレッドに依存しないようにします。
  5. スレッドの利用率を高めるためにスレッドプールを使用します。
  6. あなたのタスクとデータをhadoop/sparkのような分散フレームワークにプッシュすることができれば、タスク分割ロジックに基づいてそれを処理することができます。

私は上記の点がより明確で分かりやすいと思います。

0

Parallel Java 2 Libraryをご覧ください。利用可能なCPU/GPUコアを利用して大規模なコンピュータクラスタ上で実行されるJavaアプリケーションを開発するためのAPIとミドルウェアです。 APIは十分に文書化されており(Javadoc)、利用可能な教科書BIG CPU, BIG DATAもあります。

関連する問題