2011-04-18 2 views
4

다중 처리 환경에서 RPy 기능을 호출하는 것이 안전하며 RPy와 관련하여 알고 있어야하는 다중 처리 문제가 있습니까?멀티 프로세싱은 RPy로 안전합니까?

는 간단한 예는 다음과 같을 수 있습니다

from multiprocessing import Pool 
from rpy import * 

def f(x): 
    return r.mean(x) 


if __name__ == '__main__': 
    p = Pool(5) 
    print sum(p.map(f, [range(1, 1000000), range(2, 2000000), range(3, 3000000)])) 
그 멀티를보고

답변

1

풀의 각 작업자 예를 들어 새로운 파이썬 인스턴스를 생성합니다 그들이 공통 자원을 공유하지 -는 R 프로세스의 인스턴스를 포함하여 - 스레드로부터 안전 할 가능성이 있습니다. 가장 좋은 방법은 그것을 테스트하고 볼 수 있습니다.

+0

테스트 할 수있는 방법을 제안 해 주시겠습니까? – Nixuz

+0

위의 코드가 실행되고 예상 답변을 얻는다면 이는 테스트이며 통과합니다. 더 복잡한 코드의 경우 모듈 설명서의 지침에 따라 작성합니다. 그것이 전혀 실행되면, 당신은 잘해야합니다. 멀티 프로세싱은 꽤 바보 같은 일이 없으므로 걱정할 필요가 없습니다. 오류가 발생하지 않는다면 얻을 수 있습니다. :) – ktdrv

0

문제없이 멀티 프로세싱과 rpy2를 사용합니다. rpy (v1)와 대화 할 수는 없지만 제대로 작동 할 가능성이 있습니다.

관련 문제