Programming

Python Parallel 설치하기

알 수 없는 사용자 2016. 4. 17. 19:38

테스트 환경 : CentOS 7 / MariaDB 10.1.12 / Python 3.5

  • Virtual Box 이미지의 프로세서 개수를 늘려준다.

설정 > 시스템 > 프로세서 > 프로세서 개수

로컬 프로세스의 개수와 상관없이 이미지의 cpu개수를 설정할 수 있다.

 

  • Python Parallel 다운로드

pp-1.6.4.4.zip 파일 다운로드 및 압축 해제 후 서버로 파일을 이동한다.

(다운로드 경로 : http://www.parallelpython.com/content/view/18/32/)

 

  • Python Parallel 설치

[python@localhost /home/python]$ cd /home/python/pp-1.6.4.4

 

[python@localhost /home/python/pp-1.6.4.4]$ python setup.py install

pp-1.6.4.4 폴더로 이동 후 Python Parallel을 설치한다.


 - 설치 시 다음과 같은 에러가 발생할 수 있다.

[python@localhost pp-1.6.4.4]$ python /home/python/pp-1.6.4.4/setup.py install

running install

running bdist_egg

running egg_info

Extracting pp-1.6.4.4-py3.5.egg to /usr/local/lib/python3.5/site-packages

Adding pp 1.6.4.4 to easy-install.pth file

error: [Errno 13] Permission denied: '/usr/local/lib/python3.5/site-packages/easy-install.pth'

해당 파일에 대한 권한이 없어서 에러가 발생했을 때 권한을 다음과 같이 변경해준 후 재설치한다.

[python@localhost pp-1.6.4.4]$ ls -al /usr/local/lib/python3.5/site-packages/easy-install.pth

-rw-r--r--. 1 root root 215 4월 6 22:01 /usr/local/lib/python3.5/site-packages/easy-install.pth

 

[root@localhost ~]# chown python.python /usr/local/lib/python3.5/site-packages/easy-install.pth

    

      - Import 시 에러가 발생할 경우

[python@localhost python3]$ rm –rf /usr/local/lib/python3.5/site-packages/pp-1.6.4.4-py3.5.egg/pp.py

 

[python@localhost python3]$ cp /home/python/pp-1.6.4.4/python3/pp.py /usr/local/lib/python3.5/site-packages/pp-1.6.4.4-py3.5.egg/

Python 접속 후 import pp 시 문법 에러가 발생할 수 있는데 이것은 Python Parallel 설치 시 잘못된pp파일이 옮겨져서 생기는 문제이다. 따라서 위와 같이 python3에 있는 pp파일을 옮겨주면 해결된다.

 

  • 예제 프로그램으로 동작 확인

[python@localhost /home/python/pp-1.6.4.4/examples]$ python quicksort.py

Usage: python quicksort.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

first 30 numbers in increasing order: [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,

Job execution statistics:

job count | % of all jobs | job time sum | time per job | job server

32 | 100.00 | 6.6967 | 0.209271 | local

Time elapsed since server creation 5.402305364608765

0 active tasks, 2 cores

설정한 프로세서의 개수만큼 병렬로 처리한 것을 확인한다.