とりあえず自分は今のところHPC業界に片足を突っ込ませていただいているわけですが、そちらで業務させていただいていると避けて通れないツールとして、ジョブスケジューラー(またはワークロードマネージャ)があり、その中でも2台ツールとしてPBSPro(torque)、Slurmがあります。
PBS Proは触ったことがあったのですがSlurmは触ったことが無かったこと、またさすがに触ったり勉強しなきゃというタイミングで今回のMeetupが開催されることになったので参加することにしました。
今回は田町にあるNTTソフトウェアイノベーションセンタ で行われたのですが良い会場でしたね。また協賛としてNVIDIAさんもいらっしゃいました。
内容
- Slurmのジョブスケジューリングと実装
- EnrootとPyxisで快適コンテナ生活
- オリジナルのスケジューリングをしてみよう~GRESスケジューリングのプラグイン追加~
Slurmのジョブスケジューリングと実装 (東京大学)
Slurmの基本的な概要とジョブスケジューラ周りの詳細についての解説内容でした。
自分のようなちょこっとジョブスケジューラーを触ったことがあって、これからSlurmを触ろうとしている人間向けにはとても分かりやすい内容でした。また、プラグインの追加方法についても解説されていて、とっつきやすそうな印象を受けました。
※というか会社の教育に使えそうでした。
資料が公開されていたので追記。
EnrootとPyxisで快適コンテナ生活 (NVIDIA)
HPC分野でもGPUは欠かせない存在ですが、その代表とも言えるNVIDIAさんからのNVIDIAがnvidia-dockerなどと並んで、Slurmとdocker(正確にはcontainer)の組み合わせでもっと使いやすくするためのツールの紹介がありました。
enrootは、dockerをオーバーラップしてサンドボックスのような形で使いやすくするもの、pyxisはSlurmへの追加プラグインとして利用し、Slurm経由でdockerを使えるようにするためのツールだそうです。
どちらも開発途上ということでまだまだ機能が揃っていないとのことでしたのでこれからなのでしょうけど非常に使いやすそうな印象でした。まぁHPCとcontainerはこれからの主流になってしまうと思うのですが、これらのツールが揃ってきているだけでも自分のようなユーザーにはありがたい限りです。
オリジナルのスケジューリングをしてみよう~GRESスケジューリングのプラグイン追加~ (NTTテクノクロス)
Generic Resource (GRES) Schedulingと呼ばれる、 グラフィックスプロセッシングユニット(GPU)、CUDAマルチプロセスサービス(MPS)、およびインテル メニー統合コア(MIC)プロセッサーのサポートを司っているプラグインを参考に、GRESプラグインに機能を追加する方法についての解説内容でした。
あとはAPI周りの学習を行うことが必要かなーとか考えておりました。なんにせよソースコードは一度覗いておいた方が良いかなと。
感想
最初にも書きましたが、自分のようなSlurm初心者には大変ためになる勉強会でした。というかHPCを触ろうと思っている人は参加する価値があると思いました(今回は概要説明回だったということもあるかもしれませんが)。
今回はジョブスケジューラー周り、およびプラグイン解説でしたが、ジョブの作りこみやログイン周り、またステータスの取得周り、など業務で気になったことについてSlurmでどうするべきか、みたいなことを勉強していければと思っています。
そういえばSlurmはC言語で開発されてるんですね。PBS ProはPythonだと思っていたので、突っつきやすさでいえばPBS Proなんでしょうけど、C言語だと自分のようななんちゃってエンジニアには少し敷居が高そうに感じるのがすこし辛いです。
次回があるようであれば、体調次第ですが是非とも参加したいなと思っています。