Offcanvas

Ipyparallel

'속도를 높이는' 병렬 처리를 위한 6가지 파이썬 라이브러리

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

병렬처리 파이썬 라이브러리 Ray Dask Dispy Pandaral·lel Ipyparallel Joblib

2020.05.21

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

2020.05.21

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.31