우노
[Python] 병렬 처리 방법 본문
들어가기 앞서,
- Python 은, multiprocessing 모듈을 통해 병렬 처리를 진행할 수 있으며,
- multiprocessing 모듈의 Pool 과 Process 함수를 통해 병렬처리를 진행할 수 있습니다.
사용 가능 CPU 개수 확인
사용 가능한 CPU 의 개수가 많지 않을 땐,
싱글 프로세스와 멀티 프로세스의 처리 & 응답 시간에서 별 차이가 없을 수 있습니다.
따라서, 아래 코드를 통해 CPU 개수를 미리 파악할 필요가 있습니다.
import multiprocessing as mp mp.cpu_count()
Pool 을 사용한 병렬 처리 방법
from multiprocessing import Pool
# 병렬 처리하고자 하는 작업
def multiply(input_tuple):
result = input_tuple[0]*input_tuple[1]
return result
# 병렬 처리에 사용할 프로세스 개수 지정
p = Pool(processes=2)
# 병렬 처리 실행
result = p.map(multiply, [(1, 2), (3,4)])
print(result)
- 우선, 병렬 처리하고자 하는 작업을 함수로 만듭니다.
- 이 때, 함수의 입력인자는 하나만 가능합니다.
- 이 입력인자에, 멀티 프로세싱으로 처리할 값들이 들어오게 됩니다.
- Pool 함수를 생성한 뒤, Pool 의 입력값으로, 병렬 처리할 함수와 처리 값들을 리스트로 넣습니다.
- 병렬 처리가 끝나면, 결과값이 리스트로 반환됩니다.
- 결과값을 처리하고 싶다면, 이 리스트를 처리하면 됩니다.
참고
'Language > Python' 카테고리의 다른 글
[Python] List Comprehension(리스트 컴프리헨션)이란? (0) | 2022.06.02 |
---|---|
[Python] List 의 문자열을 int 형태로 변환 (0) | 2022.06.02 |
[Python] Pandas DataFrame Column 기준 정렬 (0) | 2022.03.25 |
[Python] List, Dictionary 저장 및 불러오기 (0) | 2022.03.23 |
[Python] Numpy 배열 저장 및 불러오기 (0) | 2022.03.23 |
Comments