2016-12-08 5 views
2

분산 클러스터 컴퓨팅을 연구 중입니다. 이러한 시스템을 구현하려면 dask.distriuted 인 파이썬 libs를 사용하려고합니다. 그러나 dworker는 다중 프로세스가 아니며 2 ~ 3 명의 작업자를 의미하며 함께 작동하지만 다중 처리 lib를 지원하는 다중 실행을 지원하지 않는다는 문제가 있습니다. 예는다중 프로세스를위한 작업자를 만드는 방법은 무엇입니까?

:

나는 client.submit (testFun) .IT는 무한한 시간에 대한이 기능을 실행할에서이 기능을 실행하면
def testFun(): 
while True: 
    time.sleep(3) 
    print('looping') 

다음은 다음 단계에 오지 않을 것입니다. 이 프로그램의 경우 :

client.submit(testFun) 
client.submit(testFun) 

여기까지는 첫 번째 줄을 실행하기 전까지는 다음 줄로 나오지 않습니다. 멀티 프로세싱을 위해 그 dworker를 만들고 싶습니다. 내가 어떻게 할까?

답변

1

기능이 동일한 서명을 가지고 있으며 한 번만 실행되기 때문입니다.

생성 된 키를 통해 알 수 있습니다. 참조 :

 
In [5]: client.submit(testFun) 
<Future: status: pending, key: testFun-a4102f4653c498f9fafc90003d87bd08> 

In [6]: client.submit(testFun) 
<Future: status: pending, key: testFun-a4102f4653c498f9fafc90003d87bd08> 

가 지금 노력이

 
def testFun(x): 
    while True: 
     time.sleep(3) 
     print('looping', x) 
 
In [13]: client.submit(testFun, 1) 
<Future: status: pending, key: testFun-afa640a088a357e5f8dd46c1937af3a7> 

In [14]: client.submit(testFun, 2) 
<Future: status: pending, key: testFun-98309530cb5b26d69131e54a521b8b40> 
+0

감사를 사용해보십시오. U는 submit 함수에서 전달하는 매개 변수가 무엇인지 말해 줄 수 있습니다. 하나는 함수 이름이고 다른 하나는 무엇입니까 ?? –

+0

@SaikatKundu 추가 인수가'testFun'에 전달됩니다. 두 작업 서명 (함수 이름 + 인수)이 다릅니다. – Rolando