2017-05-20 7 views
3

dask distributed에 대한 질문이 있습니다.dask에서 한 명의 작업자가 GPU 리소스를 관리하는 방법은 무엇입니까?

하나의 작업이 2 GPU (유형 A)에서 실행되는 반면 다른 여러 GPU에서는 1 GPU (유형 B)에서 실행되는 것과 같이 각기 다른 수의 GPU에서 실행되는 일련의 작업을 실행한다고 가정합니다. 내 이해는 "자원"속성을 가진 여러 작업자를 설정할 수 있다는 것입니다. 예를 들어, 총 GPU가 3 개이고 자원 변수 "gpus = 2"와 "gpus = 1"을 가진 작업자 한 명을 설정할 수 있습니다. 여기서 "gpus"는 추상적 용어입니다 (here 참조).

그러나 이것은 A 유형의 작업이 2 GPU의 작업자에서 실행 된 후에이 작업자가 동시에 B 유형의 작업 하나만 실행하므로 연관된 다른 사용 가능한 GPU를 사용하지 않는다는 것을 의미합니다. 이 노동자. 이 올바른지?

작업이 실행될 때 업데이트되는 (ncores와 비슷한) 총 GPU 수 (여기서는 3)를 가진 단일 작업자를 정의하는 것이 이상적입니다. 따라서 작업자는 유형 A의 단일 작업과 유형 B의 하나의 작업을 병렬로 실행할 수 있어야하고 이후에 유형 B의 세 가지 작업을 병렬로 실행할 수 있어야합니다. 이것이 가능한가?

건배

답변

2

예, 작업자에게 3 개의 GPU가 있다고 명시 할 수 있습니다. 작업자는 현재 실행중인 작업의 리소스를 추적하여 전체 리소스 요구 사항이 작업자 리소스를 초과하는 작업을 실행하지 않도록합니다.

+0

좋아요! 빠른 응답에 감사드립니다. – Celvin