Manjaro
如何在 linux 之上的本地網路中設置計算集群
我的本地網路中有 3 台機器執行 manjaro。我正在使用 dask、pandas 等執行 python 腳本,這些腳本在第一台機器上最大限度地使用了 cpu,我通常需要等待超過 30 分鐘才能完成任務。由於我已經在本地網路中設置了 3 台機器用於其他目的,因此我也希望從它們的 CPU 中受益。我不想更改 linux 發行版並希望繼續在這些機器上執行其他伺服器。我通常執行 python 腳本,這些腳本可以很容易地針對多處理進行優化(僅針對獨立數據上的循環)有沒有辦法可以做到這一點?
這是一個過於廣泛的主題,無法在此處詳細介紹,但作為一個快速大綱,您將需要:
- 某種共享儲存(例如NFS),以便所有機器都可以訪問腳本和數據。
- 作業調度程序和資源/工作負載管理器,例如slurm
mpi4py
如果您的 python 程序需要相互通信(如果它們是完全獨立的程序則不需要),可能是某種消息傳遞庫(例如)。- 順便說一句,為了避免權限問題,所有執行作業的使用者必須在所有系統上具有相同的 UID 和 GID。
使其中一台機器成為頭或控制器節點。這可能也應該是儲存伺服器。它可能應該是您 LAN 上 a) 使用最少的機器,並且 b) 擁有最多的儲存空間(或用於安裝更多儲存空間的驅動器托架)。您應該在這台機器上送出您的批處理作業。
順便說一句,控制器節點也可以充當計算節點。
另外兩台機器應該是“計算節點”和儲存伺服器的客戶端(例如,如果使用 NFS,它們應該掛載 NFS 伺服器導出的 NFS 目錄)。
您可能不想走這麼遠,但是在專用集群上,您將有一台或多台機器作為儲存節點(nfs 或ceph或其他),還會有一些集中式身份驗證伺服器(nis或LDAP或其他東西) ),並且頭節點和計算節點的所有使用者都將從文件伺服器掛載他們的主目錄。
然而,值得研究如何設計和建構“真正的”集群(或至少獲得一個概覽),因為您可以從中獲得一些很棒的想法,您可以縮小到您的 3 節點集群。