91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用樹莓派構建 Slurm 高性能計算集群:分步指南!

上海晶珩電子科技有限公司 ? 2025-06-17 16:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

e0f6b540-4b54-11f0-986f-92fbcf53809c.jpg

在這篇文章中,我將分享我嘗試使用樹莓派構建Slurm高性能計算集群的經歷。一段時間前,我開始使用這個集群作為測試平臺,來創建一個更大的、支持GPU計算的高性能計算集群。我獲得了高性能計算設置各個組件的實踐經驗,并了解了它們是如何協同工作的。設置SLURM組件確實是其中的主要部分,經過一番研究,我終于成功搭建了自己的高性能計算集群。由于設置這臺機器非常簡單,因此它非常適合快速嘗試不同的軟件包和庫,或者調整集群硬件以查看哪種配置效果最佳。

我們的目標是構建一個能夠處理多個計算節點的高性能計算集群。從頭開始創建這樣的系統是一項具有挑戰性的任務,需要一定的專業知識。此外,找到一份涵蓋配置Slurm集群所有必要步驟的全面教程相當困難,至少根據我的經驗是這樣。因此,我希望這份分步指南能對你構建自己的高性能計算集群集群有所幫助。

概要

本文從對高性能計算集群的簡要介紹開始,并強調了Slurm作為高性能計算集群系統常用的資源管理器和作業調度器的重要性。接下來,我將展示集群網絡拓撲結構,討論必要的先決條件、硬件規格和操作系統設置。之后,我將指導你完成存儲節點的設置。然后,通過從源代碼構建Slurm,在主節點上安裝和配置它,并添加一個額外的計算節點。最后,我將展示幾個示例,展示我們構建的Slurm集群的狀態以及如何在其中處理作業提交。

特性

最終,你將可以擁有自己的高性能計算集群,需要:

1.Slurm工作負載管理器

2.集中式網絡存儲

目前,我專注于最小化特性,以防止這篇文章過長。目標是首先設置一個具有基本功能的高性能計算集群,但足夠靈活,以便以后進行擴展。

什么是高性能計算集群?

高性能計算集群是由互連的計算機組成的網絡,旨在共同解決計算問題并在多個領域高速處理大型數據集。這些集群由多個計算節點組成,每個節點都配備了處理器、內存,并且通常還配備了專門的加速器,如GPU,使研究人員和科學家能夠處理計算密集型任務和模擬。

Slurm(簡單Linux資源管理工具)是一種開源的高性能計算集群作業調度器和資源管理器。它在高效分配計算資源、管理作業調度以及協調高性能計算集群上的并行計算方面發揮著關鍵作用。作為Kubernetes集群的替代方案,Slurm專門用于管理科學研究中常見的批處理計算工作負載、模擬和數據分析任務。而Kubernetes則更側重于容器化應用程序和微服務。

集群網絡拓撲

有多種網絡拓撲可用于配置高性能計算集群,每種拓撲都針對特定的性能預期和應用需求進行了定制。在我們的場景中,我們專注于通過路由器和交換機在子網(10.0.0.x)內互連三個樹莓派。我在路由器上設置了一個DHCP服務器,并保留了IP地址,以便根據每個樹莓派的唯一MAC地址為其分配固定的IP地址。然而,這可以通過直接在樹莓派上配置靜態IP(192.168.0.x)來簡化。此外,如果你使用Wi-Fi接入點而不是LAN連接來通過家庭ISP路由器互連樹莓派,則可以繞過路由器和以太網交換機的需求。由于此設置旨在用于測試集群,并且不需要快速或甚至穩定的連接,因此這種替代方案是可行的。此外,通過將路由器鏈接到家庭ISP Wi-Fi接入點并通過以太網共享給設備來提供互聯網連接。下圖提供了集群網絡的視覺表示:

e10400d8-4b54-11f0-986f-92fbcf53809c.png

樹莓派高性能計算集群網絡拓撲

這種網絡拓撲提供了可移植性的優勢,允許集群輕松連接到不同的接入點。此外,我使用了一個節點專門用于數據管理,作為專用的網絡存儲服務器。剩下的兩個樹莓派一個用作主節點和計算節點,另一個用作額外的計算節點。

先決條件

硬件組件

我使用了三個閑置了一段時間的樹莓派以及其他一些組件,如下所示:

1.樹莓派4 Model B 2GB板(主機名rpnode01)

該設備作為主節點和計算節點。

2.樹莓派4 Model B 2GB板(主機名rpnode02)

該設備作為第二個計算節點。

3.樹莓派3+ 1GB板(主機名filenode01)

該設備設置為網絡存儲服務器。

4.USB電源集線器

你需要一個帶有多個端口的USB電源充電器,能夠同時支持多個樹莓派的電力需求(每個樹莓派至少2A)。

5.路由器和以太網交換機(可選)

路由器將管理外部連接,而交換機處理內部設備通信

e113d2c4-4b54-11f0-986f-92fbcf53809c.jpg

樹莓派集群的照片

操作系統

我使用了Debian bookworm(版本12)OS Lite 64位,它以輕量級著稱,這對于像樹莓派這樣資源有限的系統來說是有益的。預計需要對所有設備進行以下調整:

1.我使用了默認用戶pi,并設置了測試密碼testpass。然而,這里還有改進的空間,可以利用LDAP或其他認證機制來保持集群中用戶和組ID的同步。

2.在節點上啟用SSH訪問,一種方便的方法是使用SSH密鑰共享來訪問節點。

3.為CPU和內存啟用控制組。通過修改/boot/firmware/cmdline.txt,添加cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1。更改后重啟系統。

4.將以下主機名添加到/etc/hosts:

10.0.0.1rpnode01 rpnode01.home.local10.0.0.2rpnode02 rpnode02.home.local10.0.0.3filenode01 filenode01.home.local

5.如果需要,使用以下命令配置語言和區域設置:

$sudo raspi-config

6.最后,更新和升級系統包:

$sudo apt update && sudo apt upgrade

e11fef6e-4b54-11f0-986f-92fbcf53809c.png

存儲節點

在高性能計算集群中,計算節點被設計為無狀態的,這意味著它們不保留任何持久數據或狀態。相反,所有應用程序軟件和用戶數據都存儲在集中式共享存儲上。這種架構提供了幾個優勢。首先,它通過簡化新計算節點的添加而無需在多臺機器上復制數據來增強可擴展性。其次,它為用戶提供了靈活性,允許他們從集群中的任何計算節點訪問其應用程序和數據。第三,將所有數據存儲在集中式存儲節點上可確保數據完整性和一致性,消除了因在單個計算節點上本地存儲數據而可能產生的不一致性擔憂。最后,無狀態計算節點架構簡化了維護任務,如軟件更新、硬件更換和故障排除,因為無需轉移或備份計算節點上本地存儲的數據。

NFS服務器

我在專用節點filenode01上設置了NFS(網絡文件系統)服務器,以便擁有網絡存儲。當我在高性能計算集群的上下文中將計算節點稱為“無狀態”時,我的意思是計算節點本身不保留任何持久數據。相反,所有用戶主目錄數據和應用程序軟件都駐留在集中式存儲節點上。

為此,我使用apt包管理器安裝了NFS服務器。這可以通過在終端中運行以下命令來完成:

$sudo apt install nfs-kernel-server

然后,我通過配置/etc/exports文件來定義我希望通過NFS共享的目錄。這是在Unix類操作系統中NFS服務器使用的配置文件。該文件指定了服務器上哪些目錄與NFS客戶端共享,并定義了這些目錄的訪問權限。我確保這些文件夾存在,然后使用以下命令添加條目:

$sudomkdir-p /home /nfs

$ sudobash -c"cat >> /etc/exports << EOF/home ?*(rw,sync,no_root_squash,no_subtree_check)/nfs ?*(rw,sync,no_root_squash,no_subtree_check)EOF"

在這里,我使用*來允許來自任何節點的訪問,并根據需要指定了選項,如rw表示讀寫訪問。編輯exports文件后,通過運行以下命令應用更改:

$sudo exportfs -ra

如果節點上啟用了防火墻,你可能需要打開NFS端口。NFSv4使用TCP和UDP端口2049,而NFSv3使用額外的端口。你可以使用ufw或iptables根據防火墻配置打開這些端口。

我們可以使用showmount來驗證NFS共享是否可用。此命令將顯示節點上導出的目錄列表。

$ sudo showmount -eExport listforfilenode01:/home */nfs *

NFS客戶端

為了在兩個NFS客戶端節點(即rpnode01和rpnode02)上啟用網絡存儲訪問,我們可以通過調整/etc/fstab文件來包含NFS掛載點。這是一個系統文件,允許在系統啟動時自動化掛載文件系統。

在更改此文件之前,請再次確??蛻舳藗鹊哪夸?home和/nfs存在。執行以下命令:

$sudomkdir-p /home /nfs

$ sudobash -c"cat >> /etc/fstab << EOFfilenode01:/home /home nfs defaults 0 0filenode01:/nfs /nfs nfs defaults 0 0EOF"

追加到/etc/fstab的每一行都定義了一個不同的NFS掛載點。它指示系統將主機名為filenode01的NFS服務器上的/home(/nfs)目錄掛載到本地的/home(/nfs)目錄。如前所述,/home用于用戶數據,而/nfs目錄用于共享軟件棧。重啟節點。

為了檢查更新的/etc/fstab的正確性,我使用以下命令mount -a。

$ sudo mount -av/nfs : successfully mounted/home : successfully mounted

這會在系統啟動時讀取/etc/fstab,并掛載尚未掛載的文件系統。

主節點

構建和安裝Slurm

我總是更喜歡從源代碼編譯Slurm,而不是使用預構建的包。這允許定制化,確保訪問最新功能和修復,并提供教育價值。從源代碼構建Slurm包并使其準備安裝的說明與此處所述大致相同,但我做了一些更改,下面將進行解釋。

1.先決條件庫

在繼續配置Slurm之前,請確保已安裝以下庫或頭文件。你可以通過apt包管理器輕松安裝它們。

$sudo apt install libpmix-dev libpam-dev libmariadb-dev \ libmunge-dev libdbus-1-dev munge

2.從源代碼構建

讓我們從SchedMD的GitHub倉庫下載最新版本的Slurm 23.11(在撰寫本文時)。我們將為其構建aarch64架構,而不是x86_64。

https://github.com/SchedMD/slurm/tags

$sudomkdir/opt/slurm &&cd/opt/slurm$sudo wget https://github.com/SchedMD/slurm/archive/refs/tags/slurm-23-11-6-1.tar.gz$sudo tar -xf slurm-23-11-6-1.tar.gz

考慮到我們是從頭開始構建所有內容,編譯Slurm將需要幾分鐘時間。

$cdslurm-slurm-23-11-6-1$sudo ./configure \ --prefix=/opt/slurm/build \ --sysconfdir=/etc/slurm \ --enable-pam \ --with-pam_dir=/lib/aarch64-linux-gnu/security/ \ --without-shared-libslurm \ --with-pmix$sudo make$sudo make contrib$sudo make install

--prefix選項指定了安裝編譯代碼的基礎目錄。我沒有直接安裝到/usr,而是將其設置為/opt/slurm/build。原因是在將Slurm安裝在額外的計算節點上時,打算利用它來創建可安裝的包。

3.構建Debian包

我使用了fpm工具來創建編譯代碼的Debian包。這需要安裝一個額外的包。

$sudo apt ruby-dev$sudo gem install fpm

此工具將創建一個包文件slurm-23.11_1.0_arm64.deb。值得一提的是,從Slurm 23.11.0開始,Slurm包含了構建Debian包所需的文件。

$sudo fpm -s dir -t deb -v1.0-n slurm-23.11--prefix=/usr -C /opt/slurm/build.Createdpackage {:path=>"slurm-23.11_1.0_arm64.deb"}

4. 安裝Debian包

接下來,我們通過dpkg命令安裝此包:

$sudo dpkg-islurm-23.11_1.0_arm64.debPreparing to unpack slurm-23.11_1.0_arm64.deb ...Unpacking slurm-23.11(1.0) over (1.0) ...Setting up slurm-23.11(1.0) ...Processing triggersforman-db(2.11.2-2) ...

我們還必須創建slurm系統用戶,并使用正確的訪問權限初始化所需的目錄。確保slurm用戶存在,并且其用戶ID在集群中同步。請注意,Slurm控制器使用的文件和目錄需要由slurm用戶可讀或可寫。此外,日志文件目錄/var/log/slurm和狀態保存目錄/var/spool/slurm必須可寫。

在這里,我將slurm用戶和組ID固定為151。

$sudo adduser --system --group -uid 151 slurm

還通過執行以下命令創建了具有預期權限的必要目錄:

$sudomkdir-p /etc/slurm /var/spool/slurm/ctld /var/spool/slurm/d /var/log/slurm$sudochownslurm: /var/spool/slurm/ctld /var/spool/slurm/d /var/log/slurm

Slurm配置

到目前為止,一切進展順利。到目前為止,我們已經構建并安裝了Slurm包。下一步將是配置其各個組件,并將它們作為服務運行。

1.Slurm數據庫守護進程

我們將設置Slurm數據庫守護進程(slurmdbd)來收集每個作業的詳細會計信息,并將所有會計數據存儲在數據庫中。這首先需要在主節點上創建一個數據庫服務器,但理想情況下,它應該位于一個單獨的節點上。我選擇了MariaDB,這是一個與MySQL兼容的開源數據庫。你可以使用以下說明部署數據庫服務器:

$ sudo apt install mariadb-server$ sudo mysql-u rootcreatedatabase slurm_acct_db;createuser'slurm'@'localhost';setpasswordfor'slurm'@'localhost'=password('slurmdbpass');grantusageon*.*to'slurm'@'localhost';grantallprivilegesonslurm_acct_db.*to'slurm'@'localhost';flush privileges;exit

之后,我們需要創建/etc/slurm/slurmdbd.conf并添加所需的配置,例如指定認證、數據庫服務器主機名、日志記錄等。執行以下命令以添加配置文件。

$sudo bash -c"cat > /etc/slurm/slurmdbd.conf << EOF#?Authentication infoAuthType=auth/munge
#slurmDBD infoDbdAddr=localhostDbdHost=localhostSlurmUser=slurmDebugLevel=3LogFile=/var/log/slurm/slurmdbd.logPidFile=/run/slurmdbd.pidPluginDir=/usr/lib/slurm
#Database infoStorageType=accounting_storage/mysqlStorageUser=slurmStoragePass=slurmdbpassStorageLoc=slurm_acct_dbEOF"

此文件描述了Slurm數據庫守護進程的配置信息。請注意,它應該只位于執行slurmdbd的計算機上。此外,它必須只能由slurm用戶讀取。

$sudochmod600 /etc/slurm/slurmdbd.conf$sudochownslurm: /etc/slurm/slurmdbd.conf

接下來,我們需要將slurmdbd設置為systemd服務。這可以通過創建/etc/systemd/system/slurmdbd.service來完成。

$ sudobash -c"cat > /etc/systemd/system/slurmdbd.service << EOF[Unit]Description=Slurm DBD accounting daemonAfter=network.target munge.serviceConditionPathExists=/etc/slurm/slurmdbd.conf
[Service]Type=forkingEnvironmentFile=-/etc/sysconfig/slurmdbdExecStart=/usr/sbin/slurmdbd$SLURMDBD_OPTIONSExecReload=/bin/kill -HUP$MAINPIDPIDFile=/run/slurmdbd.pid
[Install]WantedBy=multi-user.targetEOF"

你現在可以啟用并啟動slurmdbd.service,如下所示:

$sudo systemctlenableslurmdbd.service$sudo systemctl start slurmdbd.service

$sudo systemctl | grep slurmdbd slurmdbd.service loaded active running Slurm DBD accounting daemon

如果一切順利,你應該看到slurmdbd服務已啟動并正在運行。否則,請檢查/var/log/slurm/slurmdbd.log文件或systemd狀態。

2.Slurm控制器守護進程

Slurm控制器守護進程(slurmctl)協調Slurm活動,是Slurm的中央管理守護進程。它監控所有其他Slurm守護進程和資源,接受作業,并為這些作業分配資源。我們必須創建一個/etc/slurm/slurm.conf文件。此配置文件定義了Slurm如何與資源交互、管理作業以及與其他組件通信。它包含各種各樣的參數,并且必須在集群的每個節點上保持一致。使用以下命令在終端中創建并添加所需的配置:

$sudo bash -c"cat > /etc/slurm/slurm.conf << EOFClusterName=raspi-hpc-clusterControlMachine=rpnode01SlurmUser=slurmAuthType=auth/mungeStateSaveLocation=/var/spool/slurm/ctldSlurmdSpoolDir=/var/spool/slurm/dSwitchType=switch/noneMpiDefault=pmi2SlurmctldPidFile=/run/slurmctld.pidSlurmdPidFile=/run/slurmd.pidProctrackType=proctrack/cgroupPluginDir=/usr/lib/slurmReturnToService=1TaskPlugin=task/cgroup
#SCHEDULINGSchedulerType=sched/backfillSelectTypeParameters=CR_Core_Memory,CR_CORE_DEFAULT_DIST_BLOCK,CR_ONE_TASK_PER_CORE
#LOGGINGSlurmctldDebug=3SlurmctldLogFile=/var/log/slurm/slurmctld.logSlurmdDebug=3SlurmdLogFile=/var/log/slurm/slurmd.logJobCompType=jobcomp/none
#ACCOUNTINGJobAcctGatherType=jobacct_gather/cgroupAccountingStorageTRES=gres/gpuDebugFlags=CPU_Bind,gresAccountingStorageType=accounting_storage/slurmdbdAccountingStorageHost=localhostAccountingStoragePass=/run/munge/munge.socket.2AccountingStorageUser=slurmAccountingStorageEnforce=limits
#COMPUTE NODESNodeName=rpnode01 CPUs=4 Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 RealMemory=1800 State=idleNodeName=rpnode02 CPUs=4 Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 RealMemory=1800 State=idle
#PARTITIONNSPartitionName=batch Nodes=rpnode[01-02] Default=YES State=UP DefaultTime=1-0000 DefMemPerCPU=200 MaxTime=30-0000 DefCpuPerGPU=1EOF"

再次創建/etc/systemd/system/slurmctld.service以將slurmctl作為systemd守護進程運行。這可以通過運行以下命令來添加:

$ sudobash -c"cat > /etc/systemd/system/slurmctld.service << EOF[Unit]Description=Slurm controller daemonAfter=network.target munge.serviceConditionPathExists=/etc/slurm/slurm.conf
[Service]Type=forkingEnvironmentFile=-/etc/sysconfig/slurmctldExecStart=/usr/sbin/slurmctld$SLURMCTLD_OPTIONSExecReload=/bin/kill -HUP$MAINPIDPIDFile=/run/slurmctld.pid
[Install]WantedBy=multi-user.targetEOF"

我們現在可以啟用并啟動slurmctld.service,如下所示:

$sudo systemctlenableslurmctld.service$sudo systemctl start slurmctld.service

$sudo systemctl | grep slurmctldslurmctld.service loaded active running Slurm controller daemon

3.Slurm節點守護進程

如果你想將主節點也用作計算節點,那么你應該設置Slurm的計算節點守護進程(slurmd)。slurmd守護進程必須在每個計算節點上執行。它監控計算節點上運行的所有任務,接受作業,啟動任務,并在請求時終止正在運行的任務。此守護進程讀取slurmd.conf以及兩個額外的文件:cgroup.conf和cgroup_allowed_devices_file.conf。使用以下命令創建所需的兩個控制組(cgroup)文件:

$ sudobash -c"cat > /etc/slurm/cgroup.conf << EOFConstrainCores=yes?ConstrainDevices=yesConstrainRAMSpace=yesEOF"

$ sudobash -c"cat > /etc/slurm/cgroup_allowed_devices_file.conf << EOF/dev/null/dev/urandom/dev/zero/dev/sda*/dev/cpu/*/*/dev/pts/*/dev/nvidia*EOF"

然后,我們必須再次創建systemd.service文件以將slurmd作為服務運行。

$ sudobash -c"cat > /etc/systemd/system/slurmd.service << EOF[Unit]Description=Slurm node daemonAfter=network.target munge.serviceConditionPathExists=/etc/slurm/slurm.conf
[Service]Type=forkingEnvironmentFile=-/etc/sysconfig/slurmdExecStart=/usr/sbin/slurmd -d /usr/sbin/slurmstepd$SLURMD_OPTIONSExecReload=/bin/kill -HUP$MAINPIDPIDFile=/run/slurmd.pidKillMode=processLimitNOFILE=51200LimitMEMLOCK=infinityLimitSTACK=infinityRestart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.targetEOF"

最后,使用以下命令啟用并啟動slurmd服務:

$sudo systemctlenableslurmd.service$sudo systemctl start slurmd.service

$sudo systemctl | grep slurmd slurmd.service loaded active running Slurm node daemon

在這一步,我們已經準備就緒,可以使用Slurm的sinfo命令查看有關我們的Slurm節點和分區的信息:

$sinfoPARTITION AVAIL TIMELIMIT NODES STATE NODELISTbatch* up 30-000 1 idle rpnode01

如果你看到此輸出,則表示你已經成功安裝并配置了Slurm。干得好!

Slurm 賬戶記錄

Slurm為每個執行的作業和作業步驟收集賬戶信息。它還支持將賬戶記錄直接寫入數據庫。出于測試目的,我們在Slurm數據庫中定義了一個集群“raspi-hpc-cluster”和一個賬戶“compute”,如下所示:

$sudo sacctmgr add cluster raspi-hpc-cluster$sudo sacctmgr add account compute description="Compute account"Organization=home

$ sudo sacctmgrshowaccount Account Descr Org---------- -------------------- -------------------- compute Compute account home rootdefaultroot account root

并將用戶pi與常規Slurm賬戶關聯:

$ sudo sacctmgradduserpi account=compute$ sudo sacctmgr modifyuserpisetGrpTRES=cpu=4,mem=1gb$ sudo sacctmgrshowuser User Def Acct Admin---------- ---------- --------- pi compute None root root Administ+

如果一切順利,我們的單節點Slurm集群現在應該已經準備好提交作業了。讓我們首先顯示有關可用節點當前狀態的信息:

$sinfoPARTITION AVAIL TIMELIMIT NODES STATE NODELISTbatch* up 30-000 1 idle rpnode[01]

現在,讓我們執行一個簡單的Slurm srun命令并檢查輸出。

$srun hostnamerpnode01

這表明我們的作業作為Slurm作業成功運行,并返回了計算節點的主機名,在這種情況下是rpnode01。

計算節點

將我們的Slurm集群擴展以包含額外的計算節點涉及以下幾個關鍵步驟:

1.安裝先決條件庫和頭文件。

2.從主節點將/etc/munge/munge.key復制到計算節點,將所有者更改為munge用戶,并重啟munge.service。

3.安裝slurm-23.11_1.0_arm64.deb。

4.創建slurm用戶和所需的Slurm目錄。

5.將slurm.conf、cgroup.conf和cgroup_allowed_devices_file.conf文件復制到/etc/slurm/。

6.啟用并啟動slurmd.service。

測試

讓我們首先使用以下命令將新節點rpnode02的狀態更新為idle:

$scontrol update nodename=rpnode02 state=idle

$sinfoPARTITION AVAIL TIMELIMIT NODES STATE NODELISTbatch* up 30-000 2 idle rpnode[01-02]

再次在新節點上使用以下命令運行主機名作業:

$srun -w rpnode02 hostnamerpnode02

如你所見,此作業在第二個計算節點上執行,因此這次返回了主機名rpnode02。

示例

集群信息

Slurm中的分區是將集群劃分為邏輯節點集的一種方式,可用于更有效地管理和分配資源。在這里,我們顯示有關Slurm中配置的batch分區的詳細信息:

$ scontrolshowpartitionPartitionName=batch AllowGroups=ALLAllowAccounts=ALLAllowQos=ALL AllocNodes=ALLDefault=YES QoS=N/A DefaultTime=1-00:00:00DisableRootJobs=NOExclusiveUser=NOGraceTime=0Hidden=NO MaxNodes=UNLIMITED MaxTime=30-00:00:00MinNodes=0LLN=NOMaxCPUsPerNode=UNLIMITED MaxCPUsPerSocket=UNLIMITED Nodes=rpnode[01-02] PriorityJobFactor=1PriorityTier=1RootOnly=NOReqResv=NOOverSubscribe=NO OverTimeLimit=NONEPreemptMode=OFF State=UP TotalCPUs=8TotalNodes=2SelectTypeParameters=NONE JobDefaults=DefCpuPerGPU=1 DefMemPerCPU=200MaxMemPerNode=UNLIMITED TRES=cpu=8,mem=3600M,node=2,billing=8

并顯示rpnode01的狀態:

$ scontrolshownodesNodeName=rpnode01 Arch=aarch64 CoresPerSocket=4 CPUAlloc=0CPUEfctv=4CPUTot=4CPULoad=0.01 AvailableFeatures=(null) ActiveFeatures=(null) Gres=(null) NodeAddr=rpnode01 NodeHostName=rpnode01 Version=23.11.6 OS=Linux6.6.28+rpt-rpi-v8 #1SMP PREEMPT Debian1:6.6.28-1+rpt1 (2024-04-22) RealMemory=1800AllocMem=0FreeMem=297Sockets=1Boards=1 State=IDLE ThreadsPerCore=1TmpDisk=0Weight=1Owner=N/A MCS_label=N/A Partitions=batch BootTime=2024-05-19T13:58:15SlurmdStartTime=2024-05-19T14:20:03 LastBusyTime=2024-05-19T14:26:11ResumeAfterTime=None CfgTRES=cpu=4,mem=1800M,billing=4 AllocTRES= CapWatts=n/a CurrentWatts=0AveWatts=0 ExtSensorsJoules=n/a ExtSensorsWatts=0ExtSensorsTemp=n/a

提交作業

讓我們在主目錄中創建一個簡單的Slurm批處理文件:

$cat> ~/submit.sh <#SBATCH --job-name=testjob#SBATCH --mem=10mb#SBATCH --ntasks=1#SBATCH --cpus-per-task=2#SBATCH --time=0000
srun sleep 10EOF

現在我們可以提交此作業:

$sbatch submit.shSubmitted batch job 8

你可以在默認批處理隊列中查看提交作業的狀態:

$ squeue-alSun May1914:26:032024JOBIDPARTITION NAME USER STATE TIMETIME_LIMI NODES NODELIST(REASON) 8 batch testjob pi RUNNING 0:03 1:00 1rpnode01

此作業正在rpnode01上運行,并具有1分鐘的時間限制。

總結

如前所述,此高性能計算集群用作測試環境。它目前配備了基本的Slurm和集中存儲功能,但具有未來擴展和增強的潛力。我計劃撰寫后續文章,涵蓋與高性能計算集群系統設置相關的其他主題,包括用戶會計、磁盤配額、使用環境模塊和Conda包管理器設置軟件棧、MPI實現以及設置Jupyterhub服務。

隨時查看我的GitHub倉庫,了解我幾年前創建的有關設置高性能計算集群的指南。在該倉庫中,我涵蓋了所提到的高性能計算集群功能的設置過程。請記住,這些信息有些過時,可能需要進行一些調整才能與當前版本一起使用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7665

    瀏覽量

    90839
  • 樹莓派
    +關注

    關注

    121

    文章

    2013

    瀏覽量

    107507
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    樹莓權威用戶指南

    `樹莓權威用戶指南樹莓(raspberry pi),是一款基于linux系統的、只有一張信用卡大小的卡片式
    發表于 07-01 00:23

    120個樹莓集群

    我就發圖,讓大家觀賞一下120個樹莓做的集群。面板的后面,安裝了10個USB集線器,10個以太網交換機,一個超強電源組。
    發表于 01-20 18:29

    樹莓Python編程指南分享

    樹莓python編程指南
    發表于 10-07 08:43

    樹莓(Raspberry Pi)實戰指南.pdf

    樹莓實戰指南
    發表于 05-07 15:17 ?130次下載

    樹莓4的計算模組終于上線!

    一段時間后發布同架構的計算模組。樹莓 1 的計算模組在 2014 年推出,樹莓 3 和 3+
    的頭像 發表于 10-29 11:00 ?4551次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>4的<b class='flag-5'>計算</b>模組終于上線!

    樹莓MCU來了!

    1月22日,樹莓基金會最新發布一款低成本、高性能的微控制器開發板Raspberry Pi Pico,新產品相比普通樹莓體積更小,售價僅4
    發表于 10-25 09:51 ?17次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>MCU來了!

    樹莓鏡像構建指導、使用方法和特性介紹

    本文主要介紹 openEuler Embedded 中樹莓 4B 的構建,使用和特性介紹。
    的頭像 發表于 06-08 15:44 ?3691次閱讀

    樹莓-搭建邊緣計算云平臺

    基于樹莓搭建邊緣計算云平臺
    的頭像 發表于 12-03 00:17 ?2019次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>-搭建邊緣<b class='flag-5'>計算</b>云平臺

    樹莓機器人船構建

    電子發燒友網站提供《樹莓機器人船構建.zip》資料免費下載
    發表于 07-10 11:33 ?0次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>機器人船<b class='flag-5'>構建</b>

    等待已久,新品上市 | RevPi Connect 4系列:基于樹莓CM4計算模塊的全新工業樹莓

    虹科工業樹莓新品重磅來襲!虹科RevPi Connect 4采用最新樹莓CM4計算模塊,全面升級,
    的頭像 發表于 08-01 11:42 ?1173次閱讀
    等待已久,新品上市 | RevPi Connect 4系列:基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>CM4<b class='flag-5'>計算</b>模塊的全新工業<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>

    高性能計算集群的能耗優化

    高性能計算(HighPerformanceComputing,HPC)是指利用大規模并行計算集群來解決復雜的科學和工程問題的技術。高性能
    的頭像 發表于 05-25 08:27 ?864次閱讀
    <b class='flag-5'>高性能</b><b class='flag-5'>計算</b><b class='flag-5'>集群</b>的能耗優化

    樹莓4B的性能特點及應用

    。Cortex-A72是ARM公司推出的一款高性能處理器,采用了64位架構,具備了高性能、低功耗的特點。相較于前代產品樹莓3B+,其CPU性能
    的頭像 發表于 08-30 16:54 ?4773次閱讀

    樹莓4b和什么性能計算機相當

    樹莓4B與何種性能計算機相當,這個問題涉及到多個方面的比較,包括處理器性能、內存大小、接口豐富度以及應用場景等。以下是從這些方面進行的綜
    的頭像 發表于 08-30 17:01 ?2097次閱讀

    Raspberry Pi樹莓新手指南

    電子發燒友網站提供《Raspberry Pi樹莓新手指南.pdf》資料免費下載
    發表于 12-23 17:05 ?2次下載

    解鎖樹莓集群:一步步打造你的超級計算陣列!

    樹莓集群簡介樹莓集群是由多臺聯網的樹莓
    的頭像 發表于 04-25 16:17 ?790次閱讀
    解鎖<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>集群</b>:一步步打造你的超級<b class='flag-5'>計算</b>陣列!
    主站蜘蛛池模板: 日本a级免费 | 国产小视频在线免费 | 婷婷色在线观看 | 天堂免费视频 | 欧美一级鲁丝片 | 国产精品久久久久aaaa | 91成人免费 | 亚洲精品二区中文字幕 | 淫五月 | bt天堂在线最新版在线 | 亚洲电影在线看 | 欧美一区二区三区在线观看免费 | 国产美女主播一级成人毛片 | 亚洲jizzjizz妇女| 97影院理论片手机在线观看 | 久久999 | 国产网站在线播放 | 婷婷色爱区综合五月激情韩国 | 99久免费精品视频在线观看2 | 特黄特色大片免费视频播放 | 亚洲午夜久久久精品影院视色 | 国产成人久视频免费 | 中文天堂资源在线www | 欧美天天在线 | 男人的天堂久久精品激情 | 天天干天天舔天天射 | 色月丁香| 可以免费播放的在线视频 | jlzzjlzzjlzz日本亚洲 | 亚洲91精品 | 婷婷在线综合 | 国产精品久久久久久免费播放 | 97伊人 | 玖玖精品国产 | 国产成人精品影视 | 国产三级观看久久 | brazzers在线播放| japanese色系tube日本护士 | 二区三区 | 求网址你懂的手机在线观看网站 | 国产成人高清一区二区私人 |