파이썬 병렬처리에 필요한 모듈 임포트
import multiprocessing as mp # 파이썬 병렬 작업을 위한 코어 수 계산 from joblib import Parallel, delayed
병렬 처리에 필요한 코어 수 지정
num_core = min(mp.cpu_count(), 2) # 병렬처리에 필요한 코어수 정함 -> 최대 2개 print(num_core) # 2
병렬 처리 대상이 되는 함수를 만듬
def square(i): return i*i
병렬 처리를 위한 joblib 기본 사용법
with Parallel(n_jobs=num_core) as parallel: # n_jobs : 병렬처리를 위한 코어수 results = parallel(delayed(square)(i) for i in range(10)) print(results) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
그러나, 단순히 for loop작업은 병렬처리를 안하느니만 못하다. 왜냐하면 병렬처리를 위해 소모되는 디폴트 시간(코어별로 작업준비, 작업할당, 결과 하나로 합침 등)이 있기 때문에 오히려 더 많은 시간이 소요될 수 있기 때문이다.
reference: https://zephyrus1111.tistory.com/156