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