2017-03-31 9 views
0

Distributed Tensorflowでは、「Between-Graph Replication」として知られている、パラメータサーバーアーキテクチャで作業する複数のクライアントを実行できます。ドキュメントによると、Distributed Tensorflowを使用して複数のクライアントで1つのCPUコアを動作させることはできますか?

グラフ間レプリケーション。このアプローチでは、各/ job:workerタスクに対して別々の クライアントがあります。通常は、ワーカータスク と同じプロセスです。

通常、クライアントとワーカーは同じプロセスに入っています。しかし、彼らが同じプロセスにない場合、クライアント数は従業員の数に等しくない可能性がありますか?また、複数のクライアントが同じCPUコアで共有して実行できますか?

答えて

1

クライアントは、計算を実行するためにグラフを定義し、セッションを初期化するPythonプログラムです。これらのプログラムを起動すると、作成されたプロセスは分散アーキテクチャのサーバーを表します。

グラフを作成せずにセッションを実行するのではなく、適切なジョブ名とタスクインデックスでserver.join()メソッドを呼び出すことができます。この方法で理論的には、グラフ全体を定義し、対応するserver.targetとのセッションを開始する単一のクライアントを持つことができます。このセッションでは、グラフの一部が自動的に他のプロセス/サーバーに送信され、計算が実行されます(サーバー/タスクが何を行うかを設定している限り)。この設定では、グラフ内のレプリケーションアーキテクチャについて説明します。

したがって、複数の実行中のプロセス間のコンテキスト切り替えが遅くなるため、同じマシン上で複数のサーバー/プロセスを開始することは基本的に可能ですが、CPUは1つだけですが、並列性はほとんど得られません。ダウン。サーバーが関係のない仕事をしていない限り、この種の設定を避けるべきです。

グラフ間には、すべてのワーカーがそれぞれ独自のクライアントを持ち、それぞれ独自のセッションを実行するという意味です。

関連する問題