
著者:飯坂剛一 (いいさか ごういち)
バージョン: 1.1
LSFには2つのオープンソースが存在している。
LSFのクライアントコマンドをオープンソース化したもの
LSFのAPIについての秀逸なチュートリアル
クライアント(つまりコマンド)のみ
LSFの機能を絞ってオープンソース化したもの
マスターになれる
イベントファイルや稼動ログについてはLSFとの互換性はない
それぞれのパッケージとLSFのバージョンの関係は次の図のようになる。
LSF Open Source Package は GlobusなどのGridコミュニティーへの情報提供と、 LSFのAPIについてのチュートリアルとしての目的でリリースしていると考えられる。 事実、ソースコードを読むことでLSFのAPIの使い方が非常によく理解できる。
ソースコードは次のURLからダウンロードできる。
サポートされているOSはLinuxとSolarisになる。
LSFのライブラリとリンクしてビルドするが、 LSFのライブラリだけをバイナリで提供もされているので、 それをダウンロードすれば開発マシンにLSFを導入することは不要となる。
ただし、ビルドしたコマンドを実行するためには、 システムにLSFがインストールされている必要がある。
Platform Lavaは 512ノードまでのクラスタシステムのために設計された、 エントリーレベルのワークロードスケジューラである。
Lava はPlatform Open Cluster Stack 5 にも含まれいるが、 オープンソースとしてリリースされていて、 次のHPCCommunityサイトから入手できる。
Lavaのスケーラビリィティーは最大512ノードまでとなる。
Lavaはシステムへ一度投入されたジョブはロストしないように設計されている。
Lavaの高負荷なシステム状態でも実行中やペンディング中のジョブを
ロストすることなく動作する。
Lavaは複数のマスターホストをサポートしていて、
障害時のフェイルオーバーと障害復旧時のフェイルバックを、
シームレスに行うことができる。
このため、 Lavaがインストールされているクラスタシステムで、
どれかのマシンが動作していれば、Lavaは動作しつづける。
管理者とユーザのための判り易いドキュメントが提供されている。
Lavaはバッチシステムなどに設定されるような
ジョブリミットをサポートしている。
Linuxのリミット(プロセス、スレッド)、複合リミット(複数のリミット組み合わせたもの)
Lavaは属性値(attribute)とリソースメカニズムをサポートしている。
属性値とクラスタでの実値を持っているリソースはスケジューラが
ジョブを実行するときに参照される。
Lavaは詳細なジョブ履歴のレポートを出力できる。
これにより、Lavaではリソースの稼動課金を行うこともできる。
Lavaは並列ジョブスケジューリングをサポートしている。
並列ジョブのスケジューリングがシリアルジョブと異なる点は、
並列ジョブの中の並列タスクが実行中は、それらのノードの
ステータスをクローズ(close)にすること。
Lavaはジョブをリモート端末(TTY)で実行する 会話型バッチ(interactive batch)機構を使った、 会話型でのジョブの実行をサポートしている。
Lavaはパラメトリック(parametric)やデータ並列(data parallel)の
ためのジョブ投入を行うためのジョブアレイをサポートしている。
これは、同じコマンドを異なる入力ファイルと異なる出力ファイルで
複数回実行させるためのもの。
Lava は以前に投入した実行中のジョブの結果に依存して、 ジョブを実行させることができる。
Lava はジョブが動作しているマシンが高負荷になったときや、 指定した閾値に達したときに、 最小負荷の他のマシンへジョブを自動的に移動させることができる。
Lava は bacct(バージョンによってはlsacct)コマンドで、 ジョブスケジューリング稼働状況や状態の履歴を表示さえることができる。
Lavaには次のような制限がある。
ノード数が512まで
ジョブの割り込みができない
スケジューラはFCFS(First Come First Serve)とexternal のみ
Windowsはサポートしていない