ジョブ管理ソフトと聞くと、それは大型計算機センターでバッチ処理に使われているもので、ローカルな計算機で利用するイメージは湧いてこないという方も多いかと思います。しかしジョブ管理ソフトは、単体のサーバやワークステーションにインストールして個人的に使っても便利なミドルウェアです。ジョブ管理ソフトがあるとジョブの交通整理が自動化されるため、誰のジョブかを調べたり、計算機の空き予定を確認したり、ジョブの終了を待ちわびたりするようなストレスから開放されるからです。そのため最近では小さなグループで共同利用する単体の計算機やPCクラスタなどでも普通に使われるようになってきました。
◇ 空いている計算機を探さなくても良い
◇ 他人のジョブや自分のジョブで計算機が一杯でも、いつ終わるのかを待つことなく、ジョブ投入しておける
◇ ジョブの開始と終了をメールで通知させることができる
◇ 休みの期間や夜間でもジョブは自動投入される
◇ 負荷分散により、効率の良くスケジューリングされる
ジョブ管理ソフトが無くても計算機として機能します。しかし、ジョブ管理ソフトがあると特にマルチコア計算機は圧倒的に便利になります。そこで、弊社の計算機にはジョブ管理ソフトを標準バンドルしています。
ジョブ管理ソフトは多数存在していますが、そのなかでバンドルしているジョブ管理ソフトの優れている点を挙げます。
◇ 挙動が安定していることと
◇ 自然に利用できてクセが無いこと
◇ 負荷分散が行われる、効率の良いスケジューリングにより、計算速度が向上する
これらは長く利用されているジョブ管理ソフトが持つ、長い利用履歴のなかで培われた改良の成果です。長い歴史のなかで、多くの機能が実装され、それらが使い込まれるうちにさらに使いやすく、システムの性能を最大限に引き出しながら、しかも安定して動作するようになっています。
◇ クラスタの特定のノードにログインしてジョブを投入するだけで、ジョブは自動的に空いているホストに投入される
◇ ジョブ投入の操作は実行したいコマンドの前に専用コマンドをつけるだけで、自然に利用できる
◇ 複数ノードのクラスタを1台の計算機で利用しているようなイメージで利用することができる
◇ 適切なキューを作成し、そこにジョブを投入することで、ジョブ全体を制御できる
・ 実行時間の制限
・ 実行ホストの制限
・ 同時実行数の制限
・ メモリ使用量の制限
・ 利用ユーザの制限
◇ プロセッサやメモリサイズ、アーキテクチャ、搭載コア数など、スペックの異なる計算機をまとめて管理することができる
◇ 計算ノードの負荷を認識しており、負荷が均一になるようなスケジューリングがなされる
◇ ホストのグループ化を行うことによって、ジョブの実行ホストを希望のグループに対応させることができる
◇ 非並列ジョブと並列ジョブをまとめて管理できる
◇ MPI (MPICH、Intel-MPI)やOpenMPなどの並列プログラムにも対応している
◇ 商用アプリケーションのライセンス数を考慮したジョブスケジューリングが可能
◇ 複数の種類の商用アプリケーションを混在させても運用することができる
◇ 商用アプリケーションとライセンス制限の無いアプリケーションとの混在利用も最適実行できる
◇ MPIプログラムの異常終了時のゾンビプロセスをkillする機能により、MPIプログラムを安心して実行できる
◇ ジョブのスタートと終了をメールで通知する機能がある
◇ 数万個以上のジョブを投入してもジョブの配置や結果の回収が安定している
◇ 実行されている特定のジョブの終了後に、後続のジョブを配置する等、ジョブ間に依存関係を持たせることが可能
マルチコア計算機環境でのジョブの挙動は複雑化します。それをクラスタ化すると管理はさらに煩雑になります。その場合にジョブスケジューラの利用は効果的です。
ジョブスケジューラは各ノードの負荷状況を認識しており、負荷が均一になるようなスケジューリングがなされます。マルチコア以前のHPCクラスタではノードの構造がシンプルだったので、負荷状況の白黒は極めて明確だったため、細かな負荷管理は不要でした。ところがマルチコア化により、ノードのコア数が増え、しかも投入されるジョブも不均一になると、負荷状況にも広いレベルが発生してきます。ところが、負荷状況を意識したスケジューリングが行われないと、ノードがジョブで満たされるまでは同じノードにジョブが集中投入されます。これは合理的に見えますが、実は負荷が集中するため、ノードの中ではボトルネックが発生しやすくなっており、実効性能が低下した状態で利用している可能性があります。これは非効率なスケジューリングです。
ジョブスケジューラは各ノードの負荷を認識しており、負荷分散を意識した効率的なスケジューリングを行うため、高いスループットの計算機利用が実現できます。