2017-03-31 2 views
0

In Distributed Tensorflow konnten wir mehrere Clients mit Arbeitern in Parameter-Server-Architektur ausführen, die als "Between-Graph Replication" bekannt ist. Gemäß der DokumentationKann ein einzelner CPU-Kern mit mehreren Clients mit Distributed Tensorflow arbeiten?

Zwischen-Grafik-Replikation. Bei diesem Ansatz gibt es einen separaten -Client für jede/job: worker-Aufgabe, normalerweise im selben Prozess wie die -Worker-Aufgabe.

es sagt, dass der Client und der Arbeiter in der Regel in demselben Prozess sind. Wenn sie sich jedoch nicht im selben Prozess befinden, kann die Anzahl der Clients nicht der Anzahl der Mitarbeiter entsprechen? Können mehrere Clients denselben CPU-Kern gemeinsam nutzen und ausführen?

Antwort

1

Clients sind die Python-Programme, die ein Diagramm definieren und eine Sitzung initialisieren, um Berechnungen auszuführen. Wenn Sie diese Programme starten, stellen die erstellten Prozesse die Server in der verteilten Architektur dar.

Jetzt ist es möglich, Programme zu schreiben, die kein Diagramm erstellen und keine Sitzung ausführen, sondern nur die server.join() -Methode mit dem entsprechenden Jobnamen und Aufgabenindex aufrufen. Auf diese Weise könnten Sie theoretisch einen einzelnen Client haben, der den gesamten Graph definiert und eine Sitzung mit dem entsprechenden Server startet. Innerhalb dieser Sitzung werden Teile des Graphen automatisch an die anderen Prozesse/Server gesendet und die Berechnungen werden durchgeführt (solange Sie festgelegt haben, welcher Server/welche Aufgabe was zu tun hat). Diese Konfiguration beschreibt die In-Graph-Replikationsarchitektur.

Es ist also grundsätzlich möglich, mehrere Server/Prozesse auf derselben Maschine zu starten, die nur eine einzige CPU hat, aber nicht viel Parallelität, weil der Kontextwechsel zwischen mehreren laufenden Prozessen Sie verlangsamen wird Nieder. Wenn die Server also nichts miteinander zu tun haben, sollten Sie diese Art der Einrichtung vermeiden.

Between-Graph bedeutet nur, dass jeder Worker einen eigenen Client hat und jeweils eine eigene Sitzung ausführt.

Verwandte Themen