- 기본 사용법
from multiprocessing import Pool
def my_function(arg):
# 여기에 병렬로 실행하고자 하는 코드 작성
print(arg)
if __name__ == "__main__":
# CPU 코어 개수만큼 풀 생성 (일반적으로 CPU 코어 수와 동일하게 설정)
pool = Pool()
# 함수를 병렬로 실행
results = pool.map(my_function, range(5))
# 풀 종료
pool.close()
pool.join()
- 일반 코드(예시)
import multiprocessing, time
# Multi Processing
start_time = time.time()
# define function
def count(name):
for i in range(1, 100000):
print(f"{ name }, : { i }")
num_list = ['process 1', 'process 2', 'process 3', 'process 4']
if __name__ == "__main__":
# For loop
for num in num_list:
count(num)
print(f"------ { time.time() - start_time } seconds ------")
- 결과 : 0.9624049663543701 seconds 소요
- Multi-Processing 적용(예시)
import multiprocessing, time
# Multi Processing
start_time = time.time()
# define function
def count(name):
for i in range(1, 100000):
print(f"{ name }, : { i }")
num_list = ['process 1', 'process 2', 'process 3', 'process 4']
if __name__ == "__main__":
# Multi-threading
pool = multiprocessing.Pool(processes=2)
pool.map(count, num_list)
pool.close()
pool.join()
print(f"------ { time.time() - start_time } seconds ------")
- 결과 : 0.925828218460083 seconds 소요
(코드 출처 : https://niceman.tistory.com/145 )
'Python Code' 카테고리의 다른 글
딥러닝 Pytorch&PostgresSQL 도커파일 (0) | 2023.10.12 |
---|---|
Docker Compose(도커 컴포즈) 예시 (0) | 2023.10.12 |
Config 파일 관리 (argparse) (0) | 2023.10.10 |
Cut-off 별 Sensitivity(민감도), Specificity(특이도) 성능 측정 코드 (0) | 2023.10.10 |
pytorch 딥러닝 학습/평가 코드 (0) | 2023.09.27 |