Безопасна ли многопроцессорная обработка с RPy? - PullRequest
4 голосов
/ 18 апреля 2011

Безопасно ли вызывать функции 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)]))

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Видя, что многопроцессорность порождает новый экземпляр Python для каждого рабочего экземпляра в пуле, и у них нет общих ресурсов - включая экземпляры процесса R, - есть вероятность, что он поточно-ориентирован.Лучший способ это проверить и посмотреть.

0 голосов
/ 06 мая 2011

Я использую многопроцессорность и rpy2 без проблем.Не могу говорить с rpy (v1), но велика вероятность, что это сработает.

...