2016-06-24 4 views
2

의 단일 시스템에있는 여러 작업자는 각 작업자가 모델의 복제본을 가지고있는 방식으로 분산 된 TensorFlow를 로컬 시스템에서 시작할 수 있습니까?분산 된 TensorFlow

예인 경우 각 에이전트에 단일 CPU 코어 만 사용하도록 할당 할 수 있습니까?

+0

1 코어 사용을 제한하는이 대답은 다음과 같습니다. http://stackoverflow.com/a/37864489/419116 –

답변

0

첫 번째 질문에 대한 대답은 '예'입니다. 자세한 내용은 여기를 참조하십시오 : https://www.tensorflow.org/versions/r0.9/how_tos/distributed/index.html

두 번째 질문에 대해서는 Tensorflow가 코어 레벨에서이 수준의 세분화 된 제어를 갖고 있는지 확실하지 않습니다. 일반적으로 OS는 여러 코어에서 스레드의로드 균형을 조정합니다.

여러 개의 CPU/GPU가있는 경우 Tensorflow는 프로세서 수준에서 장치를 지정할 수 있습니다.

2

예 그것은 distributed Tensorflow locally 시작할 수 있습니다 :

각 작업은 일반적으로 다른 시스템에서 실행되지만 동일한 시스템에서 여러 작업을 실행할 수 있습니다 (예를 들어, 서로 다른 GPU 장치를 제어하기 위해).

같은 과정에서 (tf.Graph()로 만든) 이상의 그래프를 사용하는 경우, 당신이해야합니다 :

과 같은 방법으로

각 노동자는 same graph가 그 각 그래프마다 다른 세션을 사용하지만 각 그래프는 여러 세션에서 사용할 수 있습니다.

귀하의 의견에 의해 언급 한 바와 같이

은 시도하고 다른 CPU에 배포 한 후 단일 스레드로 스레드 풀을 제한 포함하는 single core에 배포 TF의 실행을 달성하는 방법에 대한 제안이있다.

현재 특정 코어에 TF 그래프를 분산 실행할 수있는 기능은 없습니다.

+1

TensorFlow에는 특정 코어에 실행을 묶는 기능이 없습니다. 분산 된 런타임에서는 동일한 결과를 얻기 위해 [표준 리눅스 프로세서 친 화성 메커니즘] (http://www.glennklockwood.com/hpc-howtos/process-affinity.html)을 사용할 수 있습니다. 세션을 시작할 때 생성되는 쓰레드의 수를 제한하고 싶을 수도 있습니다 ('tf.ConfigProto.inter_op_parallelism_threads'와'tf.ConfigProto.intra_op_parallelism_threads'는 관련된 설정 옵션입니다). – mrry