분산 처리를 위한 Paraller Python (이하 PP) 설치법 및 사용법
[ PP 다운로드 사이트 http://www.parallelpython.com/content/view/18/32/ ]
[ Master Server ]
root@k1rha:~/PYTHON/Parallel# unzip pp-1.6.4.zip
root@k1rha:~/PYTHON/Parallel# cd pp-1.6.4.zip
root@k1rha:~/PYTHON/Parallel/pp-1.6.4# python setup.py install
설치를 하고나면 pp 패키지를 자유롭게 import 하여 사용 할 수 있다.
다수의 컴퓨터를 분산처리 하는 구조는 아래와 같다.
PPServer는 이미 Parallel Python 사이트에서 만들어놓은 프로그램을 사용하여 테스트 하였다.
각 Slave 컴퓨터에서는 ppserver를 동작 시킨다. 그리고 MASTER 서버는 자신이 연산할 함수를 각 서버에 분산시킨 뒤 그 결과값을 리턴 받는 식이다.
[ Client A ]
# ppserver.py
[ Client B ]
# ppserver.py
[ Client C ]
# ppserver.py
[ Client D ]
# ppserver.py
[ Master ]
# [병렬 처리할 프로그램].py
#ppservers = () //같은 네트워크망이 아닐땐 요부분을
ppservers = ("[ A HOST IP ]:[PORT]","[ B HOST IP ]: [PORT]", ) //요렇게 고쳐준다..
[ 결과 화면 비교 1. 클러스터가 없을때 ]
job count | % of all jobs | job time sum | time per job | job server
9 | 100.00 | 15.5626 | 1.729183 | local
Time elapsed since server creation 8.8939139843
0 active tasks, 2 cores
root@k1rha:~/PYTHON/Parallel/pp-1.6.4/examples#
[ 결과 화면 비교 2. 클러스터가 local 1개 remote 1개 총 2대일떄 ]
root@k1rha:~/PYTHON/Parallel/pp-1.6.4/examples# python sum_primes.py
Usage: python sum_primes.py [ncpus]
[ncpus] - the number of workers to run in parallel,
if omitted it will be set to the number of processors in the system
Starting pp with 2 workers
Sum of primes below 100 is 1060
Sum of primes below 200000 is 1709600813
Sum of primes below 200100 is 1711401118
Sum of primes below 200200 is 1713002400
Sum of primes below 300300 is 3716110510
Sum of primes below 200400 is 1716407615
Sum of primes below 200500 is 1717810714
Sum of primes below 300600 is 3723922172
Sum of primes below 400700 is 6478918307
Job execution statistics:
job count | % of all jobs | job time sum | time per job | job server
1 | 11.11 | 4.8824 | 4.882423 | 223.194.105.176:60000
4 | 44.44 | 11.3776 | 2.844407 | 223.194.105.178:60000
4 | 44.44 | 8.7561 | 2.189026 | local
Time elapsed since server creation 6.6827340126
[결론] 제공된 예제코드인데 좀 쥐꼬리만큼 빨라지는 기분... 생각만큼 절반으로 줄어들 순 없는것 같다.
'Python' 카테고리의 다른 글
[py2exe] py2exe 로 변환시 인코딩 에러 (0) | 2013.09.04 |
---|---|
[python 2.7] 엑셀 다루기 xlwt xlrd 사용하여 엑셀 컨트롤 하기 (0) | 2013.08.13 |
[python2.7] Multi-Thread 와 Multi-Processing 차이와 예제코드 (0) | 2013.08.04 |
[python] exploit 코드들에서 자주 나오는 lambda 사용법으로 인한 pack 에 대한 이해 (0) | 2013.05.30 |
python2.7 thread 예제 코드 (0) | 2013.05.30 |