의 단일 시스템에있는 여러 작업자는 각 작업자가 모델의 복제본을 가지고있는 방식으로 분산 된 TensorFlow를 로컬 시스템에서 시작할 수 있습니까?분산 된 TensorFlow
예인 경우 각 에이전트에 단일 CPU 코어 만 사용하도록 할당 할 수 있습니까?
의 단일 시스템에있는 여러 작업자는 각 작업자가 모델의 복제본을 가지고있는 방식으로 분산 된 TensorFlow를 로컬 시스템에서 시작할 수 있습니까?분산 된 TensorFlow
예인 경우 각 에이전트에 단일 CPU 코어 만 사용하도록 할당 할 수 있습니까?
첫 번째 질문에 대한 대답은 '예'입니다. 자세한 내용은 여기를 참조하십시오 : https://www.tensorflow.org/versions/r0.9/how_tos/distributed/index.html
두 번째 질문에 대해서는 Tensorflow가 코어 레벨에서이 수준의 세분화 된 제어를 갖고 있는지 확실하지 않습니다. 일반적으로 OS는 여러 코어에서 스레드의로드 균형을 조정합니다.
여러 개의 CPU/GPU가있는 경우 Tensorflow는 프로세서 수준에서 장치를 지정할 수 있습니다.
예 그것은 distributed Tensorflow locally 시작할 수 있습니다 :
이각 작업은 일반적으로 다른 시스템에서 실행되지만 동일한 시스템에서 여러 작업을 실행할 수 있습니다 (예를 들어, 서로 다른 GPU 장치를 제어하기 위해).
같은 과정에서 (tf.Graph()로 만든) 이상의 그래프를 사용하는 경우, 당신이해야합니다 :
과 같은 방법으로
각 노동자는 same graph가 그 각 그래프마다 다른 세션을 사용하지만 각 그래프는 여러 세션에서 사용할 수 있습니다. 귀하의 의견에 의해 언급 한 바와 같이
은 시도하고 다른 CPU에 배포 한 후 단일 스레드로 스레드 풀을 제한 포함하는 single core에 배포 TF의 실행을 달성하는 방법에 대한 제안이있다.
현재 특정 코어에 TF 그래프를 분산 실행할 수있는 기능은 없습니다.
TensorFlow에는 특정 코어에 실행을 묶는 기능이 없습니다. 분산 된 런타임에서는 동일한 결과를 얻기 위해 [표준 리눅스 프로세서 친 화성 메커니즘] (http://www.glennklockwood.com/hpc-howtos/process-affinity.html)을 사용할 수 있습니다. 세션을 시작할 때 생성되는 쓰레드의 수를 제한하고 싶을 수도 있습니다 ('tf.ConfigProto.inter_op_parallelism_threads'와'tf.ConfigProto.intra_op_parallelism_threads'는 관련된 설정 옵션입니다). – mrry
1 코어 사용을 제한하는이 대답은 다음과 같습니다. http://stackoverflow.com/a/37864489/419116 –