Несколько соединений с общей памятью с использованием PyRserve
Я использую PyRserve. Я хочу выполнить R оценки от нескольких запущенных процессов Python. Во всех этих оценках необходимо использовать одни и те же глобальные переменные, поэтому было бы сэкономлено много времени, если бы каждое новое соединение могло использовать эти переменные после определения только один раз. Обратите внимание, что переопределять их при каждом соединении нельзя, поскольку это отнимает много времени (например, некоторые переменные - это модели, загружаемые из файлов). Есть ли способ иметь несколько соединений PyRserve, которые совместно используют определенные переменные? Если нет, то что было бы хорошим обходным путем здесь?
Я не смог найти ничего определенного в документации.
1 ответ
Из документации pyRserve может показаться, что объекты общей памяти не могут быть * назначены пространствам имен подключений:
В своей текущей реализации pyRserve позволяет устанавливать и получать доступ к следующим базовым типам:
- Нет (NULL)
- логический
- целые числа (только 32-разрядные)
- числа с плавающей запятой (только 64-битные), т.е. удваивается
- сложные числа
- строки
Кроме того, поддерживаются следующие контейнеры:
- списки
- массивы numpy
- TaggedList
- AttrArray
- TaggedArray
Если вы создаете рабочий процесс для каждого соединения, я бы направил вас к многопроцессорной библиотеке Python, которая предоставляет вам объекты общей памяти простых типов, а также управляемые объекты более высокого уровня в классе mp.Manager.
* Возможно, на самом деле я не проверял это...