간단한 Python 루프 병렬화
제공된 Python 루프는 범위를 반복하고 각 반복에 대해 계산을 수행합니다. 이 루프를 병렬화하는 방법에는 여러 가지가 있지만 질문에서는 가장 쉬운 접근 방식에 대한 선호도를 지정합니다. 멀티 프로세싱을 사용하는 두 가지 간단한 방법이 아래에 설명되어 있습니다.
멀티 프로세싱 모듈을 사용한 멀티 프로세싱
멀티 프로세싱 모듈은 프로세스 풀을 생성하기 위한 ProcessPool 클래스를 제공합니다. 코드는 다음과 같이 다시 작성할 수 있습니다.
import multiprocessing pool = multiprocessing.Pool(4) out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
여기서 4개의 프로세스로 구성된 풀이 생성됩니다. pool.map() 메서드는 iterable의 각 요소에 calc_stuff 함수를 적용하고 결과 튜플을 반환합니다.
concurrent.futures.ProcessPoolExecutor를 사용한 다중 처리
또는 , 동시.futures 모듈은 프로세스 생성을 단순화하는 ProcessPoolExecutor 클래스를 제공합니다. 관리. 코드는 다음과 같습니다.
from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor() as pool: out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
두 접근 방식 모두 내부적으로 다중 처리 모듈을 활용하고 Linux 및 기타 운영 체제 모두에서 루프를 병렬화하는 쉬운 방법을 제공합니다.
위 내용은 다중 처리를 사용하여 간단한 Python 루프를 어떻게 쉽게 병렬화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!