他們提議在Linux內核中開發Popcorn

如果首先想到的是流行的應用程序,該應用程序允許您通過torrent協議查看內容,那麼恐怕會告訴您不,不是那樣,我們正在談論的是關於 弗吉尼亞理工大學的開發人員 誰最近做了一個 與Linux內核開發人員討論的建議 在一組補丁上 爆米花系統的實施 (分佈式線程執行)以分發線程。

這個系統 允許您通過分發和遷移來組織多台計算機上應用程序的執行 主機之間的透明流。 使用Popcorn,可以在一個主機上啟動應用程序,然後可以將它們傳輸到另一主機而不會中斷。 在多線程程序中,允許遷移到其他單線程主機。

關於爆米花

與CRIU項目不同,CRIU項目允許您保存流程狀態並在另一個系統上恢復執行, Popcorn提供了透明而動態的遷移 在應用程序執行期間主機之間 無需用戶採取措施並確保虛擬內存的一致性 在線程同時運行的所有主機上。

爆米花 提供Linux內核的補丁程序堆棧 以及帶有測試的庫,該測試顯示瞭如何在遷移的可執行應用程序中使用從遷移流中調用Popcorn系統。

在內核級別,提出了對虛擬內存子系統的擴展 與分佈式共享內存的實現, 允許不同主機上的進程訪問公共且一致的虛擬地址空間。 通過協議可以確保虛擬內存頁面的一致性,該協議可在訪問內存頁面以讀取時將內存頁面複製到主機,並在寫入時使內存頁面無效。

主機之間的交互是使用通過TCP套接字傳輸的內核級消息處理程序進行的。 可以看出,TCP / IP用於簡化開發過程中的調試和測試。 開發人員了解,就安全性和性能而言,TCP / IP並不是在主機之間傳輸內核結構和內存頁面內容的最佳方法。 運行分佈式應用程序的所有主機必須具有相同的信任級別。 在基本算法穩定之後,將應用更有效的傳輸方式。

自2014年以來,爆米花已發展成為一項研究項目 研究創建分佈式應用程序的可能性,這些應用程序的線程可以在異構計算機系統的不同節點中執行,並且可以基於各種命令集體系結構(Xeon / Xeon-Phi,ARM / x86,CPU / GPU / FPGA)。

向Linux內核開發人員提出的補丁集僅支持在具有x86 CPU的主機上運行,但也 還有功能更強大的Popcorn Linux 允許應用程序在主機上運行 具有不同的CPU架構(x86和ARM).

要在異構環境中使用Popcorn,必須使用基於LLVM的特殊編譯器。 在具有相同體系結構的主機上執行分佈式執行時,不需要通過單獨的編譯器進行重建。

,我們會注意到宣布了與Telefork項目類似的事情 最初的原型API實現 在群集中的其他計算機上啟動子進程 (類似於fork(),但將分支過程轉移到另一台計算機上)。

該代碼是用Rust編寫的,到目前為止,僅允許克隆不使用系統資源的最簡單的進程(例如文件)。 進行電話叉呼叫時,與該過程相關的內存和結構將克隆到運行服務器控制器(電話墊)的另一台主機上。

使用ptrace,進程內存鏡像將被序列化,並與進程狀態和日誌一起傳輸到另一台主機。 該API還允許您將進程狀態保存到文件中並通過該文件進行還原。

來源: https://lkml.org/


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。