1

나는 계산을 수행하는 함수를 포함하는 클래스가있다. 이러한 객체의 인스턴스가 여러 개있는 경우 계산을 병렬로 수행하려면 어떻게해야합니까? Python 2.7에서 다른 인스턴스화의 클래스 메소드를 병렬로 호출하는 방법은 무엇입니까?

class SomeClass: 
    def __init__(self, arg): 
    .... 
    def compute(self): 
    .... 

그리고 다른 스크립트

:

from multiprocessing import Pool 
from wherever import SomeClass 
    g1 = SomeClass(arg1) 
    g2 = SomeClass(arg2) 
    pool = Pool(processes = 2) 

어떻게 노동자 중 하나가 g1.compute()와 다른 g2.compute을해야합니까()? 당신은 주어진 인수의 계산 방법을 호출하는 작업자 함수를 정의해야합니다 python2.7에

답변

0

, 당신은 pool.map()와 함께 사용할 수 있습니다 python3에

def call_compute(o): 
    return o.compute() 
... 
result = pool.map(call_compute, [g1, g2]) 

(3.5 테스트) 그건 pickling 인스턴스 메소드가 지원되기 때문에 대신 pool.map(SomeClass.comute, [g1, g2])을 사용할 수 있습니다.

+0

대단히 감사합니다. – Chicony

관련 문제