著者:飯坂剛一 (いいさか ごういち)

バージョン: 1.1

2つのオープンソース

LSFには2つのオープンソースが存在している。

*Platform LSF Open Source Package
  • LSFのクライアントコマンドをオープンソース化したもの

  • LSFのAPIについての秀逸なチュートリアル

  • クライアント(つまりコマンド)のみ

*Platform Lava
  • LSFの機能を絞ってオープンソース化したもの

  • マスターになれる

  • イベントファイルや稼動ログについてはLSFとの互換性はない

それぞれのパッケージとLSFのバージョンの関係は次の図のようになる。

images/version.png

Platform LSF Open Source Package

LSF Open Source Package は GlobusなどのGridコミュニティーへの情報提供と、 LSFのAPIについてのチュートリアルとしての目的でリリースしていると考えられる。 事実、ソースコードを読むことでLSFのAPIの使い方が非常によく理解できる。

ソースコードは次のURLからダウンロードできる。

サポートされているOSはLinuxとSolarisになる。

LSFのライブラリとリンクしてビルドするが、 LSFのライブラリだけをバイナリで提供もされているので、 それをダウンロードすれば開発マシンにLSFを導入することは不要となる。

ただし、ビルドしたコマンドを実行するためには、 システムにLSFがインストールされている必要がある。

Platform Lava

Platform Lavaは 512ノードまでのクラスタシステムのために設計された、 エントリーレベルのワークロードスケジューラである。

Lava はPlatform Open Cluster Stack 5 にも含まれいるが、 オープンソースとしてリリースされていて、 次のHPCCommunityサイトから入手できる。

Lavaの主な特徴

*スケーラビリィティー

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の制限

Lavaには次のような制限がある。