皆さん、こんにちは!
HPC環境の運用において、ジョブ管理システムであるSlurmは不可欠な存在です。 しかし、「コマンドライン操作が難しい」「ジョブの状況が分かりにくい」と感じる方もいらっしゃるかもしれませんね。
そこで今回ご紹介したいのが、OpenOnDemandとSlurmを組み合わせることで得られる、圧倒的な使いやすさと効率性です! この強力なコンビネーションが、どのように皆様の研究や開発を加速させるのか、その主なメリットをステップバイステップでご紹介します。
OpenOnDemand × Slurm の主なメリット
OpenOnDemandとSlurmの連携は、HPC環境の利用を劇的にシンプルかつ効率的にします。具体的なメリットを見ていきましょう!
Webベースで使いやすいユーザーインターフェース
ジョブ管理が視覚的に可能
- HPC環境で多数のジョブを管理する際、現在の状況を一目で把握できることは非常に重要です。
- OpenOnDemandを使えば、ジョブキューの状況や、現在実行中、あるいは完了したジョブの一覧を視覚的に確認できます。
- さらに、各ジョブがどれくらいCPUやRAMなどのリソースを使用しているかもGUI上で簡単にチェックできるため、効率的なリソース利用に繋がります。
インタラクティブジョブの簡単起動
ファイル操作もWeb上で可能
テンプレートベースのジョブ投入
- 繰り返し実行する定型ジョブの投入は、手動で行うと手間がかかります。
- OpenOnDemandでは、事前に用意された「ジョブテンプレート」を利用することで、数クリックで定型ジョブの投入を完了できます。
- 例えば、「Python実行ジョブ」や「MPI並列ジョブ」といったテンプレートをユーザー向けに準備することが可能です。これにより、ジョブ投入の敷居を大きく下げることができます。
管理者にとっても便利
- OpenOnDemandは、利用者だけでなくシステム管理者にとっても大きなメリットをもたらします。
- HPC環境の利用状況をWebから一目で確認できるため、運用の透明性が高まります。
- また、「どのノードで、どのようなジョブが動いていたか」といった情報をGUIで簡単に把握できるため、利用者からの問い合わせ対応やトラブルシューティングにおけるサポートの効率化にも貢献します。
OpenOnDemand × Slurm 簡単インストールハンズオン
それでは、SlurmとOpenOnDemandの強力な連携を体験するために、実際に1台のRocky Linux 9サーバーへSlurm Controller/Compute/OpenOnDemandをインストールしてみましょう!
Slurmインストール
- まず、Slurmサービス用のユーザーとグループを作成します。
# sudo groupadd -g 64030 slurm # sudo useradd -u 64030 -g 64030 -m -d /run/slurm -s /sbin/nologin -r slurm- Slurmのビルドに必要なMungeと開発ツールをインストールします。
# dnf config-manager --set-enabled crb # dnf -y install epel-release # dnf install -y munge munge-devel # /usr/sbin/create-munge-key # systemctl enable --now munge # systemctl status munge.service # sudo dnf install -y dbus-glib-devel # dnf groupinstall -y "Development Tools"- Slurmのソースコードをダウンロードし、ビルドします。
# wget https://download.schedmd.com/slurm/slurm-24.11.5.tar.bz2 # tar -xaf slurm*tar.bz2 # cd slurm-24.11.5/ # ./configure # make -j 5 # make install- systemdサービスファイルと設定ファイルをコピーし、Slurmユーザーのディレクトリ権限を設定します。
# cp -p /root/slurm-24.11.5/etc/slurmctld.service /usr/lib/systemd/system/ # cp -p /root/slurm-24.11.5/etc/slurmd.service /usr/lib/systemd/system/ # systemctl daemon-reload # cp -p /root/slurm-24.11.5/etc/slurm.conf.example /usr/local/etc/ # cd /usr/local/etc/ # cp -p slurm.conf.example slurm.conf- slurm.confを編集します。
# vi slurm.conf # grep -vE '^\s*#|^\s*$' slurm.conf ClusterName=cluster SlurmctldHost=master MpiDefault=none ProctrackType=proctrack/cgroup ReturnToService=1 SlurmctldPidFile=/var/run/slurmctld.pid SlurmctldPort=6817 SlurmdPidFile=/var/run/slurmd.pid SlurmdPort=6818 SlurmdSpoolDir=/var/spool/slurmd SlurmUser=slurm StateSaveLocation=/var/spool/slurmctld SwitchType=switch/none TaskPlugin=task/affinity InactiveLimit=0 KillWait=30 MinJobAge=300 SlurmctldTimeout=120 SlurmdTimeout=300 Waittime=0 SchedulerType=sched/backfill SelectType=select/cons_tres AccountingStorageType=accounting_storage/none JobCompType=jobcomp/none JobAcctGatherFrequency=30 JobAcctGatherType=jobacct_gather/none SlurmctldDebug=info SlurmctldLogFile=/var/log/slurm/slurmctld.log SlurmdDebug=info SlurmdLogFile=/var/log/slurm/slurmd.log NodeName=master CPUs=1 State=UNKNOWN PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP- 必要なディレクトリを作成し、Slurmユーザーの所有権を設定します。
# mkdir /var/log/slurm # mkdir /var/spool/slurmctld # mkdir /var/spool/slurmd # chown slurm:slurm /var/log/slurm # chown slurm:slurm /var/spool/slurmd # chown slurm:slurm /var/spool/slurmctld- Slurmサービスを起動し、ステータスを確認します。
# systemctl enable --now slurmctld.service # systemctl status slurmctld.service # systemctl enable --now slurmd.service # systemctl status slurmd.servicesinfoコマンドでSlurmクラスタの状態を確認します。
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST debug* up infinite 1 idle master上記のように表示されればOKです。
OpenOnDemandインストール
- OpenOnDemandの公式サイトの手順も参考に、必要なリポジトリとモジュールを有効にし、パッケージをインストールします。
# sudo dnf config-manager --set-enabled crb # sudo dnf install -y epel-release # sudo dnf module enable ruby:3.3 nodejs:20 # sudo dnf install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el9.noarch.rpm # sudo dnf install -y ondemand # sudo dnf install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-compute-4.0-1.el9.noarch.rpm # sudo yum install -y ondemand-compute💡 ポイント: Slurm連携のためにondemand-computeもインストールしています。
- Apache HTTPサーバーを起動し、有効化します。
# sudo systemctl start httpd # sudo systemctl enable httpd # sudo systemctl status httpd認証、SSL設定
- 今回は動作確認のため、PAM連携認証を設定します。本番環境ではセキュリティに問題があるため、この設定は推奨されません。
# sudo dnf -y install mod_authnz_pam # sudo echo "LoadModule authnz_pam_module modules/mod_authnz_pam.so" > /etc/httpd/conf.modules.d/55-authnz_pam.conf # sudo cp /etc/pam.d/sshd /etc/pam.d/ood # sudo chmod 640 /etc/shadow # sudo chgrp apache /etc/shadow- 自己証明書を使用します。
# openssl genrsa 2048 > server.key # openssl req -new -key server.key > server.csr (openssl req -new -key server.key > server.csr実行時に表示される質問は全てEnterで進めます。) # openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt # sudo mv server.key /etc/pki/tls/private/ # sudo mv server.csr server.crt /etc/pki/tls/certs/# vi /etc/ood/config/ood_portal.yml # grep -vE '^\s*#|^\s*$' /etc/ood/config/ood_portal.yml --- servername: master ssl: - 'SSLCertificateFile "/etc/pki/tls/certs/server.crt"' - 'SSLCertificateKeyFile "/etc/pki/tls/private/server.key"' auth: - 'AuthType Basic' - 'AuthName "Open OnDemand"' - 'AuthBasicProvider PAM' - 'AuthPAMService ood' - 'Require valid-user'💡 ポイント: 「user_map_cmd: "/opt/ood/ood_auth_map/bin/ood_auth_map.regex"」は配布されなくなった設定のため、今回は設定していません。
Slurm連携設定
- OpenOnDemandにSlurmクラスタを認識させるための設定ファイルを作成します。
# sudo mkdir -p /etc/ood/config/clusters.d # vi /etc/ood/config/clusters.d/cluster.yml # cat /etc/ood/config/clusters.d/cluster.yml --- v2: metadata: title: "My Test Cluster" login: host: "master" job: adapter: "slurm" bin: "/usr/local/bin/"💡 ポイント: cluster.ymlはクラスタ名.ymlとしています。
- OpenOnDemandポータルを更新し、Apache HTTPサーバーを再起動します。
# sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal # systemctl restart httpd
ブラウザで「https://master」にアクセスすると、認証画面が表示されます。
ローカルユーザー「life」のユーザー名とパスワードを入力してログインします。
これで、OpenOnDemandのWebインターフェースからSlurmクラスタが利用できるようになりました!

まとめ
OpenOnDemandとSlurmを組み合わせることで、HPC環境がよりユーザーフレンドリーになり、研究者や学生が計算資源を最大限に活用できるようになります。 CLI操作のハードルを下げ、視覚的な管理と効率的なワークフローを提供することで、皆様の研究・開発活動を強力に後押しします。
私たちライフマティックス株式会社では、このようなHPC環境の導入や設定、運用に関するご支援も行っています。 Slurmの構築・運用でお困りのことがございましたら、ぜひお気軽にお問い合わせください!専門家チームが強力にサポートいたします。
次回は、OpenOnDemand上での具体的な操作についてご紹介する予定ですので、お楽しみに!