오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-19 08:40
관리 메뉴

우노

[Python] 병렬 처리 방법 본문

Language/Python

[Python] 병렬 처리 방법

운호(Noah) 2022. 4. 3. 15:51

들어가기 앞서,

  • 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 의 입력값으로, 병렬 처리할 함수와 처리 값들을 리스트로 넣습니다.
  • 병렬 처리가 끝나면, 결과값이 리스트로 반환됩니다.
    • 결과값을 처리하고 싶다면, 이 리스트를 처리하면 됩니다.

참고

Comments