TFoSparkのTFManager

概要

以下の通り、マルチプロセッシング処理におけるプロセス間通信を担うマネージャ。

tensorflowonspark/TFManager.py:15

1
"""Python multiprocessing.Manager for distributed, multi-process communication."""

キューやキーバリューの辞書を管理。 キューは、SparkのExecutorとTFのWorkerの間の通信に用いられるようだ。

実装の確認

また以下の通り、BaseManagerを継承している。

tensorflowonspark/TFManager.py:14

1
class TFManager(BaseManager):

startメソッド

startメソッドではリモートの接続を受け付けるかどうかを確認しながら、 BaseManager#startメソッドを使ってマネージャ機能を開始する。

tensorflowonspark/TFManager.py:60

1
2
3
4
5
if mode == 'remote':
mgr = TFManager(address=('', 0), authkey=authkey)
else:
mgr = TFManager(authkey=authkey)
mgr.start()

connectメソッド

アドレスと鍵を指定しながらTFManagerに接続する。

tensorflowonspark/TFManager.py:81

1
2
3
m = TFManager(address, authkey=authkey)
m.connect()
return m

共有