tensorflowOnSpark 源码分析 - PS Server

tensorflowOnSpark.version == '1.1.0'

在TFSparkNode.py run方法里下面这段代码

      # for ps nodes only, wait indefinitely in foreground thread for a "control" event (None == "stop")
      if job_name == 'ps':
        queue = TFSparkNode.mgr.get_queue('control')
        done = False
        while not done:
          msg = queue.get(block=True) # 阻塞executor
          logging.info("Got msg: {0}".format(msg))
          if msg is None:
            logging.info("Terminating PS")
            TFSparkNode.mgr.set('state', 'stopped')
            done = True
          queue.task_done()

通过阻塞ps所在的spark executor,在后续训练、预测过程时讲ps所在的executor中的数据转发到其他空闲的executor中计算,这样每个executor的角色只能是tensorflow work / tensorflow ps server中的一个

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。