잠깐동안 예제를 따라해보면서 해본 느낌은..
잘 모르겠지만 엄청 간단합니다.
먼저 Parallel Python에서 http://www.parallelpython.com/content/view/18/32/ 에서 다운 받아서, pp를 다운받아서, 돌아갈 머신과 마스터 노드에 python setup.py install 하면 끝..
그리고 사용방법은 계산노드(slave)에서 ppserver.py -a(auto discovery) 하면 끝.. 물론 포트를 지정해 준다면 -p 옵션을 사용하면됩니다.
그런다음 마스터 노드에서 다음과 같은 방법으로 하면됩니다. (지금 같은경우는 1master node, 1slave node로 구성된 케이스)
import sys,thread
import pp
class myTest:
def __init__(self):
self.value=0
self.lock = thread.allocate_lock()
def result(self, value):
self.lock.acquire()
self.value += value
self.lock.release()
def mysum(n):
result=0
for i in range(1,1000):
result+=i
return result
sum = myTest()
ppserver= ppservers=("*",)
job_server = pp.Server(ppservers=ppservers)
job1 = job_server.submit(mysum,(100,),callback=sum.result)
job_server.print_stats()
job_server.wait()
print "result is "+str(sum.value)
job_server.print_stats()
#ppservers = ("10.0.0.1",)
slave서버를 입력 하는 방법인데 ppserver("*",) 이 방법은 Master노드와 같은 대역에 있을대 저렇게 하면, 자동으로 인식이됨 저 코드의 경우 1master node에서 1 slave노드에게 계산하라고 해서 callback 한 결과를 보여주고 있습니다.
Job execution statistics:
job count | % of all jobs | job time sum | time per job | job server
1 | 100.00 | 0.0000 | 0.000000 | local
Time elapsed since server creation 0.00300002098083
1 active tasks, 8 cores
result is 499500
Job execution statistics:
job count | % of all jobs | job time sum | time per job | job server
1 | 100.00 | 0.0010 | 0.001000 | local
Time elapsed since server creation 0.00399994850159
0 active tasks, 8 cores
'Study > Python' 카테고리의 다른 글
Pyenv offline (오프라인, 폐쇄망) 환경에서 사용하기 (1) | 2017.11.15 |
---|---|
Python FLASK 로 HTTPS 기반 API 만들기 (0) | 2017.03.18 |
파이썬으로 병렬처리 하기 3 마지막장 (Parallel Python) (4) | 2016.01.02 |
파이썬으로 병렬처리 하기 1 (Parallel Python) (0) | 2016.01.02 |
[2번째 실험]파이썬, 들여쓰기 (1) | 2009.01.27 |
[1번째 실험]파이썬.. (4) | 2009.01.27 |