Corgi Dog Bark

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 multiprocessing Pool 이해하기
    카테고리 없음 2021. 7. 5. 01:45
    반응형

    - 파이썬은 작업을 병렬처리 할 수 있도록 멀티프로세싱을 지원하는데, 그 중 하나인 POOL 에 대해서 설명해보도록 하겠다. 다음의 그림을 보면, 놀고 잇는 우리의 CPU 등을 향해 멀티 CPU를 활용해서 각각의 결과물을 나중에 합쳐 작업을 좀 더 수월하고 빠르게 진행할 수 있다.

     

    - 더 자세한 설명은 고성능 파이썬 프로그래밍 3 - 멀티프로세싱과 멀티스레딩 (chacha95.github.io) 여기에 나와있으니, 참고하고, 우리는 이를 활용하여 좀 더 실용적으로 어떻게 사용하는지 알아보자.

    (링크)An introduction to parallel programming using Python's multiprocessing module (sebastianraschka.com)

    - 먼저 파이썬의 멀티 프로세싱을 만들어주기 위한 모듈을 import 해준다.

     

    - 보게 되면, 위에는 7.2 초가 소요되었고, 밑의 경우, 3.12 초가 소요됨을 알 수 있다. (거의 절반의 시간 절약) 

    - 그렇다고 CPU 코어를 4개 사용했다고, 4배 빨라지는 것은 아니니, 계산상에서는 조심해야겠다.

    - Pool 의 모듈 사용법은 Pool(num_cores)의 개수로 객체생성해준다음, pool 객체에 원하는 함수를 mapping 시켜주면, 알아서 Pool 의 multiprocessing 을 통해 빌드 된다. 

     

     

    - Kaggle 데이터 셋 만드는데, 너무 오래걸려서 Pool 의 사용법 정리 및 기록 합니다~ 질문은 댓으로 남겨주세요

    - 참고로 위의 random_walk 함수는 다음과 같은 사진을 만들어 냅니다.

    반응형

    댓글

Designed by Tistory.