題 如何共享CPU或RAM?


在網絡中,我們共享文件(磁盤驅動程序)或數據庫。 但是我們如何通過網絡共享CPU或RAM。


20
2018-03-12 00:45


起源


這樣做的問題是,與CPU和RAM之間的納秒級延遲相比,網絡速度非常慢! - Phoshi
@Phoshi:即使有網絡添加的延遲,這樣的設置 威力 比基於磁盤的交換更快。 - Piskvor
@Piskvor:但是正如任何人都可以告訴你的那樣,基於磁盤的交換是一個非常巨大的性能損失! - Phoshi
@Phoshi:我同意 - 事實確實如此,最佳解決方案是“增加更多物理內存”。我所說的是,通過快速網絡分頁到快速設備(例如ramdisk)可能仍然比分頁到物理磁盤更快。換句話說:這可能是比物理介質上的交換更快的交換設備,即使它比物理RAM慢很多個數量級。 - Piskvor
@Piskvor:完全合情合理,即使你錯了也肯定是在同一個數量級上,所以在最壞的情況下不會顯著惡化。我想,擁有更多本地物理存儲可能更便宜! - Phoshi


答案:


為此,必須專門設計訪問CPU / RAM資源的程序以訪問所述資源。以這種方式建立的系統稱為集群,典型的資源共享方式是使用稱為MPI(消息傳遞接口)的協議。它是免費下載的,並且在Linux上使用它可以以最低的成本產生一個強大的集群(甚至可能是一台超級計算機),但除非你有專門設計用來利用MPI的程序,否則它是無用的。有一些很好的集群教程,如果你仍然感興趣,你應該檢查一下。

編輯:

我會推薦這個教程 這裡 如果要設置群集。大約一年前我按照本教程創建了一個集群,它運行得很好。這個教程有點舊,所以有些文件可能不完全是教程所說的內容(有時文件會在不同的/較新的Linux發行版中移動)但如果你對Linux最不熟悉它應該不是問題。本教程使用舊版MPI,但我使用過 最新版本 沒有任何問題不容易解決。根據你正在做的事情,實際上可能有一個可以利用MPI的程序。我知道有一些 視頻編碼 以及利用可從通用源下載的MPI的數字運算程序。


21
2018-03-12 00:58



請告訴我一些參考資料。 - MJH
@MJH看到我編輯的答案。 - ubiquibacon
謝謝。但是本教程適用於Linux,我使用Windows.also,應用程序必須在MPI及其約束下編寫。 - MJH
@MJH如果您想使用Windows,那麼您只需要一個適用於Windows的MPI庫,但概念是相同的。 MPICH 適用於Windows,或者您可以使用Windows HPC構建Windows群集(內置MPI導電性),如果您有一些硬幣丟棄。雖然這確實讓你使用Windows,但你仍然需要使用為MPI編寫的程序,目前還沒有辦法解決這個問題。 - ubiquibacon
感謝您的回答 - 推薦的教程似乎已經改變了地址 uiowa.edu/mihpclab/hpcSystsemTechnicalReport/... ......乾杯! - sdaau


您可以使用RAM磁盤共享RAM,但這看起來就像共享普通磁盤一樣,除了這些磁盤位於另一台計算機的RAM中。一台計算機沒有直接的方法可以使用另一台計算機的RAM,就像它自己的RAM一樣,但有一些方法可以使用其他計算機的RAM。下一段更多內容。

至於CPU共享,它是可能的,但它沒有單一的標準。您不能只是共享它,讓另一台計算機獲取所需的資源。相反,你需要有專門設計的應用程序,可以在一台計算機上工作。這通常被稱為分佈式計算,並被一些研究項目使用,如SETI @ Home,Einstein @ Home,Climateprediction.net等等。

基本上,程序以這樣的方式工作,即有一個中央服務器分配需要完成的工作。網絡上的計算機從中央計算機下載工作單元並處理它們。之後,中央計算機從客戶端接收結果並將它們合併為一個有凝聚力的結果。這樣,計算機通過網絡“共享”CPU和RAM資源。這樣做的缺點是程序需要以通過網絡工作的方式進行,現在分佈式計算在計算機的常見用途中不夠流行,因此只有少數專門程序支持它。另一方面,它通常用於科學目的,因為獲得大量個人計算機或遊戲機3比獲得對大型計算機的訪問更便宜。


9
2018-03-12 00:59



是否有軟件可以在我的網絡中共享我的應用程序?不需要外國網絡!(例如,我想要渲染文件,我的電腦在7天內呈現這一點,但我將其分享到我的網絡並將渲染縮減為1天? - MJH
@MJH不幸的是,我還沒有聽說過任何可以用於渲染的程序。 - AndrejaKo
分享ramdisks有點毫無意義,雖然不是嗎?隨著網絡附加存儲的緩慢,你得到ram的波動性 - Journeyman Geek♦
@AndrejaKo對於直接視頻轉碼,我還沒有聽說過任何一個(但有些谷歌搜索我確實找到1或2個alpha / beta項目)。但是,對於3D渲染,我有 不 從90年代開始就看到了3D渲染程序 支持  網絡  翻譯。 - Scott Chamberlain


有沒有軟件可以在我的網絡中共享我的應用程序?   到外國網絡!(例如,我想渲染一個文件,我的電腦渲染   這在7天內,但我分享到我的網絡和渲染減少   到1天? - MJH 2011年3月12日1:19

你陷入了困境 XY問題,你不應該問“我怎麼能共享cpu和ram accros計算機”,但是“如何使用多台計算機讓​​我的渲染速度更快?”

它高度依賴於您正在使用的軟件以及您正在渲染的內容(是您 轉碼 視頻,還是渲染3D模型/視頻?)。

選擇免費3D軟件的幾個例子 攪拌機 支持 分佈式渲染 你可以讓許多計算機一起工作以生成一個輸出。如果你正在進行視頻渲染,一些快速的谷歌搜索找到了開源項目 MediaEncodingCluster 允許您使用多台計算機渲染視頻和音頻文件。


5
2017-09-12 13:44





我知道唯一允許共享CPU / RAM的操作系統是plan9。在那裡你可以導出/掛載幾乎任何東西。當然,這並不意味著表演很好。


5
2017-08-31 15:49





通過網絡共享cpu / ram用於任務將是一個很好的功能。目前,我們仍然有一些舊觀念將程序保留在發生事件的框中,但我們可以允許同一台機器上的多個cpus訪問相同的代碼片段。我們確實有一種方法(至少)可以做到這樣的事情。網頁上的java通過使用服務器和客戶端來工作,但它仍然以服務器 - 客戶端的方式鎖定(服務器保存大部分數據)。我們需要能夠以與我們有多個cpu時相同的方式將任務分配給機器(除了執行工作的機器需要分配程序剪輯和數據剪輯。這確實會給網絡帶來更大的負擔如果任務本身不是一個簡單的性質,並可能導致新的瓶頸形成。我喜歡這個想法,它在重複的任務,雖然在方法很像關鍵挖掘。


0
2018-01-20 15:31