본문 바로가기
Programing/Python

Parallel Python

by Tomining 2016. 1. 20.


PPis a python module which provides mechanism for parallel execution of python code on SMP(systems with multiple processors or cores) and clusters(computers connected via network).

PP 를 위와 같이 설명하고 있다.
Multi-Therad 환경의 경우 단일 Process 에서 생성&수행된 Thread 끼리 데이터를 주고 받거나 영향을 준다. 물론 파일시스템이나 Hadoop 같은 분산 파일시스템을 적절히 사용한다면 다 가능하다.(선행작업이 좀 있음…)
하지만 PP 에서는 파이선 모듈만 설치하면 쉽게 사용할 수 있다. 특히 Cluster 환경도 쉽게 지원하는게 아주 강력한 것 같다.
(아직 사용해 보진 않았고, 샘플코드만 잠시 살펴봤을 뿐이다…)

주요 특징으로 아래와 같이 나열하고 있다.

Features:

  • Parallel execution of python code on SMP and clusters
  • Easy to understand and implement job-based parallelization technique (easy to convert serial application in parallel)
  • Automatic detection of the optimal configuration (by default the number of worker processes is set to the number of effective processors)
  • Dynamic processors allocation (number of worker processes can be changed at runtime)
  • Low overhead for subsequent jobs with the same function (transparent caching is implemented to decrease the overhead)
  • Dynamic load balancing (jobs are distributed between processors at runtime)
  • Fault-tolerance (if one of the nodes fails tasks are rescheduled on others)
  • Auto-discovery of computational resources
  • Dynamic allocation of computational resources (consequence of auto-discovery and fault-tolerance)
  • SHA based authentication for network connections
  • Cross-platform portability and interoperability (Windows, Linux, Unix, Mac OS X)
  • Cross-architecture portability and interoperability (x86, x86-64, etc.)

간략하게 요약하면, "분산 처리시 고려해야 할 사항들을 특별히 신경쓰지 않고 쉽게 사용할 수 있게 해 준다" 정도인 것 같다.

'Programing > Python' 카테고리의 다른 글

JPype 사용기  (0) 2016.07.19
Python Intellij Project 설정시 Django 인식 오류  (0) 2016.07.14
Window 환경에서 Python VirtualEnv 사용하기  (0) 2016.07.06
Python 기초 스터디 자료  (0) 2016.03.27
Python 시작하기  (0) 2015.03.30