local에서 multiprocessing 사용하기

이성범·2022년 4월 27일
0

Development

목록 보기
5/7
  • 우리는 데이터를 빠르게 전처리 하기 위해서 병렬 처리를 고려할 때가 있다.
  • 이때 사용되는 라이브러리가 바로 multiprocessing 이다.
  • multiprocessing을 colab에서 사용할 때는 동일한 ipynb에 함수를 만들어서 적용하면 되는데, local에서는 적용할 함수를 py 형태로 만들어 import 후에 사용해야 된다.
  • 그리고 병렬 처리하는 데이터를 list, dict에 저장하고 싶을 때 multiprocessing에서 지원해주는 list, dict 자료형을 사용해야지만 저장이 가능하다.
  • 그리고 추가적으로 병렬 처리 함수의 arg가 여러개 일때 functools에 partial을 사용하면 편리하다.
# ex1.py
def multiprocessing_func(arg1, arg2, arg3):
   '''
   전처리 관련 함수 추가
   '''

# ex2.py
import multiprocessing
from multiprocessing import Process, Manager
from functools import partial

from ex1 import multiprocessing_func

manager = Manager()

multiprocessing_dict = manager.dict() # 병렬 처리 하는 데아터의 자료형 

pool = multiprocessing.Pool(processes = N)

pool.map(partial(multiprocessing_func,
                 arg1 = multiprocessing_dict,
                 arg2 = arg2,
                 arg3 = arg3,)
                 )
                 
pool.close()
pool.join()
profile
Machine Learning Engineer at Konan Technology

0개의 댓글