簡體   English   中英

Python Ray 共享內存訪問

[英]Python Ray shared memory access

我有一個關於在 Ray Framework 中訪問共享內存的問題。
想象一下在1 台機器上的以下設置:

  1. 啟動 Ray 集群
  2. 啟動進程/worker python 腳本w1.py ,它通過ray.put(O1)將對象O1放入共享內存
  3. 啟動進程/worker python 腳本w2.py ,它嘗試通過ray.get(...)從共享內存中獲取O1

有沒有辦法從另一個工作進程w2.py訪問對象O1 (從w1.py進程放入共享內存)?

當我從w2.py執行ray.objects()時,我得到了 obejct 引用字符串,但是我怎么能從共享內存中檢索對象呢? 我無法在w2.py 中初始化ObjectRef 對象

這不是本機支持的。 原因是 ray 的對象具有用於各種功能的各種元數據(例如,性能優化或使用引用計數的自動內存管理)。

如果您想實現這一點,我認為有兩種解決方案。

  1. 使用分離的actor api。 獨立演員是一生不與司機分攤車費的演員。 創建分離的actor后,您可以使用ray.get_actor API 獲取actor 句柄。 通過這種方式,您可以將一個對象放在一個分離的 actor 中並從多個驅動程序訪問。

  2. 還有另外一種使用cloudpickle的方式,但是我對這個方案不是很熟悉,所以就不寫了。 請訪問 Ray 在其 Github 存儲庫中的討論頁面,詢問有關它的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM