2015-07-06 32 views
0

我正在使用PyRserve。我想從多個運行的python進程執行一些R評估。所有這些評估都需要使用相同的全局變量,所以如果每個新連接在定義一次之後都可以使用這些變量,則可以節省大量時間。請注意,重新定義這些與每個連接不是一個選項,因爲這是非常耗時(對於一些變量是從文件加載模型)。有沒有辦法讓多個PyRserve連接共享某些變量?如果不是什麼將是一個很好的解決方法在這裏?使用PyRserve共享內存的多個連接

我在文檔中找不到任何明確的內容。

回答

0

從pyRserve documentation它似乎共享存儲器對象不能*被分配給連接名稱空間:

在其當前的實現pyRserve允許設置和訪問 以下基本類型:

  • 無(NULL)
  • 布爾值
  • 整數(僅限32位)
  • 浮點數(僅64位),即增加一倍
  • 複數

此外下面容器的支持:

  • 列表
  • numpy的陣列
  • TaggedList
  • AttrArray
  • TaggedArray

如果要生成一個工作進程爲每個連接,我會指引你走向蟒蛇multiprocessing庫,它爲您提供了共享簡單類型的內存對象,以及更高層次的管理對象在mp.Manager類下。

*它可能實際上我沒有測試過這個...

+0

感謝您的迴應!我知道經理(雙關):),但是這裏的交易是我們有很多R代碼將相當多的模型加載到內存中。使用多處理技術在客戶端共享它需要額外的工作,如果給出替代方案,我想避免。但不幸的是,它看起來沒有好的選擇。 – abhgh