반응형

멀티프로세싱 2

python error: The "freeze_support()" line can be omitted if the program is not going to be frozen to produce an executable.

위 에러는 multiprocessing 을 실행할 때, if __name__ == '__main__': 과 freeze_support( ) 를 사용하지 않고 실행했을 때 나타나는 에러이다. 우선 if __name__ == '__main__' 의 경우에는 이미 실행된 함수가 다른 객체에 할당되어 실행될때, 이전의 내용과 중복되어 실행되는 것을 막아주는 기능을 하는데 중복/반복을 막아 자원이 중복 사용되는 것을 막아주는 함수이다. 그리고 freeze_support( ) 의 경우에는 파이썬 multiprocessing 이 윈도우에서 실행될 경우, 자원이 부족할 경우를 대비해 파일 실행을 위한 자원을 추가해주는 역할을 하는 함수이다 그리고 효율 적인 자원 사용과 중복 방지를 위하여 if __name__ =='_..

Introducing python 참고 개념 : multiprocessing

싱글 머신에서 다수의 작업을 가능한 한 빠르게 처리하고 싶을 때, 이들을 독립적으로 만들어 처리하는 작업 멀티 프로세싱을 활용하면 복잡하고 시간이 걸리는 작업을 벼롣의 프로세스를 생성 후 병렬처리해서 보다 빠른 응답처리 속도를 기대할 수 있는 장점이 있다. 최근들어 대용량의 빅데이터 분석 및 예측 등의 머신 러닝을 지원하는 다양한 패키지에서 대부분 멀티 프로세싱을 활용하여 멀티코어의 CPU의 장점을 극대화하고 빠른 처리를 지원하고 있다. 하지만, 멀티프로세싱은 오버해드의 증가 및 메모리 사용률이 높아지는 단점도 있다. 대표적인 파이썬의 multiprocessing 라이브러리는 Pool 객체가 있다. 아래 링크들을 통해 자세한 내용을 이해할 수가 있다. 첫번째 링크는 multiprocessing 에 대한 ..

언어/Python 2020.03.17
반응형