各位同仁,
我有幾台電腦,有些是新的,有些是舊的(我收集它們是從 1979 年我的第一台電腦開始的,它有 2K 位元組的 RAM)。收藏越來越多,但這個問題的目的與我一直喜歡超級電腦的力量,或至少是大型機器的力量有關。
我曾經想過將機器連接起來以獲得更強大的機器。我運行一個 LAN(區域網路)1Gbit apeed,其中有 4 台機器 intel i7 2600k 以 4.8Ghz 水冷運行,每台機器都有 16Mb RAM、SSD 和普通硬碟,總共 30Tb 空間(LAN 上的總計空間) )。在閱讀了有關虛擬化的文章並觀看了許多有關虛擬化的視頻後,我對在每台計算機上安裝裸機(類型1)虛擬機管理程序,然後創建一個分佈在物理機上的虛擬機的可能性表示懷疑,這樣我就可以安裝像Windows 這樣的作業系統最上面,運行需要大量資源的軟體,如CPU、RAM、硬碟等。
我想一定有一種方式讓虛擬機器「認為」它安裝在一台機器上,但實際上,它分佈在多個節點上(如叢集)。對於虛擬機器來說,它把系統看成只是一台大機器,但實際上,有共享的CPU、共享的RAM和共享的硬碟。
使用這種方式,我們可以安裝OP並運行例如Adobe After Effects或Adobe Premiere,它們需要出色的平行處理(或CPU能力)才能即時預覽,或運行複雜的軟體,這可以受益來自多個處理器。我知道很多人會建議購買一台大型多 CPU、多核心 Xeon 機器來進行並行處理,但事實並非如此......我認為以當前的技術,一定有一種方法可以連接 PC並獲得更多的計算能力。
我看到人們加入Raspberry pi 並在youtube 上製作“超級電腦”,具有1 teraflop 的性能,那麼為什麼我們不能用我們自己的機器來做到這一點,它有LAN、內存、磁碟……這不是同一件事嗎?是否可以 ?怎麼做 ?
謝謝
答案1
不幸的是,目前來說,你想要運行的「超級電腦」在硬體和軟體方面還沒有開發出來。
現有的虛擬化管理程式(例如 Hyper-V、VMware ESXi、XenServer)允許在單一主機或叢集上執行虛擬機器。虛擬機器管理程式採用硬體 CPU、RAM 和存儲,並將其「轉換」為虛擬資源來執行 VM。對於存儲,可以在使用網路連接進行資料傳輸的主機之間鏡像的共享磁碟區中進行配置(如 iSCSI SAN、VMware VSAN、StarWind VSAN 等),但每個虛擬機器仍然僅使用本地計算 CPU 和 RAM。
根據我的經驗,沒有任何軟體或硬體可以結合 CPU、RAM 和存儲,因為沒有匯流排類型可以為「超級電腦」主機之間的通訊提供服務。
答案2
這些應用程式僅限於那些能夠有效利用您給定資源的應用程式。除非存在知道如何在所有從屬電腦之間分配工作負載的軟體,否則您無法在「超級電腦」上執行 After Effects。
首先,您沒有所需的軟體。即使您購買了所需的虛擬化軟體(不惜任何代價,或者公司甚至願意將其出售給您!),對叢集也有最低要求,其中通常包括幾乎相同的規格。我能找到的最接近的是 VMware ESXi。
其次,電腦之間的通訊會帶來巨大的損失,以至於任何效能提升基本上都被抵消。透過網路共享 RAM 速度太慢而不可行,而且透過 iSCSI 共享驅動器可能不會像您預期的那樣可靠。
第三,這些普通桌上型電腦的電源效率加在一起非常低,你會發現自己在一個月左右的時間內無法支付這台「超級電腦」的費用。
你想用你現有的資源賺錢,但這不是方法。只要賣掉你的電腦來購買更高性能的電腦 - 即使你的古董也會賣得很好。
答案3
這其實是可以做到的。曾經有一個名為 ClusterKnoppix 的 Linux 發行版,它基於一個仍然可用的專有但免費的 AFAICS 的開源分支,Linux 軟體包名為莫西克斯。
來自管理指南:
MOSIX 是一個透過在叢集和多叢集私有雲內遷移進程來提供負載平衡的軟體包。 MOSIX 主要用於分散式並發計算,例如用於密集計算。
它能做什麼:
提供單一系統映像。
– 使用者可以登入任何節點,不需要知道他們的程式在哪裡運作。
– 無需修改或連結應用程式與特殊程式庫。
自動資源發現和工作負載分配。
但
所有節點必須具有 x86 64(64 位元)架構。同一節點的所有核心必須具有相同的速度。
所以它可能不符合您的特定要求。