Sun N1 Grid Engine 6.1 ユーザーズガイド

第 1 章 N1TM Grid Engine 6.1 ソフトウェアの概要

この章では、N1 Grid Engine 6.1 ソフトウェア (Grid Engine システム ともいう) を実行する、ネットワークに接続されたコンピュータホストシステムの背景について説明します。この章の内容は、次のとおりです。

グリッドコンピューティングおよび N1 Grid Engine 製品については、次の YouTube Web サイト にも優れた紹介があります。Introduction to Grid Engine

グリッドコンピューティングとは

グリッドは、タスクを実行するコンピューティングリソースの集合です。もっとも簡単な形式のグリッドの場合、ユーザーには、強力な分散リソースへの単一のアクセスポイントを提供する大きなシステムのように見えます。この節の後半で説明するより複雑な形式のグリッドは、多くのアクセスポイントをユーザーに提供できます。いずれの場合でも、ユーザーはグリッドを 1 つのコンピュータリソースとして扱います。N1 Grid Engine 6.1 ソフトウェア (Grid Engine ソフトウェア) などのリソース管理ソフトウェアは、ユーザーが発行したジョブを受け付けます。ソフトウェアは、リソース管理ポリシーによって、ジョブがグリッド内の適切なシステムで実行されるようにスケジューリングを行います。ユーザーは、ジョブの実行場所を気にせずに、一度に数百万ものジョブを発行できます。

同じグリッドというものは 1 つもありません。また、あるサイズのグリッドですべての状況に対応することはできません。グリッドには次の 3 つの主要クラスがあり、単一システムから、数千のプロセッサを使用するスーパーコンピュータクラスの計算ファームまでをカバーしています。

図 1–1 に 3 つのグリッドクラスを示します。クラスタグリッドでは、ユーザーのジョブはクラスタ内の 1 システムのみによって処理されます。ただし、そのユーザーのクラスタグリッドはより複雑なキャンパスグリッドの一部の場合もあります。そしてキャンパスグリッドはもっとも大きいグローバルグリッドの一部の場合があります。このような場合、ユーザーのジョブは世界中のどこにあるメンバー実行ホストでも処理できます。

図 1–1 3 つのグリッドクラス

N1 Grid Engine 6.1 ソフトウェア は、キャンパスグリッドに必要なパワーと柔軟性を提供します。本製品を使用するとキャンパスグリッドの作成へのスムーズな移行をより簡単に実現できるので、既存のクラスタグリッドにとって有利です。Grid Engine システムは、キャンパスのすべての既存のクラスタグリッドを統合して、この移行を実行します。さらに、Grid Engine システムはグリッドコンピューティングモデルに初めて移行する 企業にとっても最適です。

Grid Engine ソフトウェア は、組織の技術スタッフと管理スタッフが策定する企業のリソースポリシーを基に、処理能力の提供を調整します。Grid Engine システムは、これらのポリシーを使用してキャンパスグリッド内の使用可能なコンピュータリソースを調べます。システムはこれらのリソースを収集したあと、リソースの割り当てと提供を自動的に行い、キャンパスグリッド間の使用率を最適化します。

キャンパスグリッド内での協調を実現するために、グリッドを使用するプロジェクトの所有者は次の操作を実行する必要があります。

Grid Engine ソフトウェア は、コンピュータリソースの利用で競合する多くの部署とプロジェクトのエンタイトルメントを調整できます。

リソースとポリシーの管理による作業負荷の管理

Grid Engine システムは、異機種システムが混在する分散コンピューティング環境向けの高度なリソース管理ツールです。作業負荷管理とは、共有リソースの使用を制御して、生産性、適時性、サービスレベルなどの企業目標を最適な形で達成することです。作業負荷管理は、リソースの管理ポリシーの管理によって実現されます。サイトでは使用量とスループットが最大になるようにシステムが構成されますが、システムはさまざまなレベルの適時性と重要性をサポートしています。たとえば、ジョブの期限は適時性の例です。また、重要性の例にはジョブの優先順位やユーザーの共有などがあります。

Grid Engine ソフトウェアは、複数の共有リソースで構成される UNIX 環境向けの高度なリソース管理とポリシー管理を提供します。Grid Engine システムは、次の主要機能において標準的な負荷管理ツールより優れています。

Grid Engine ソフトウェア は、高度なコンピュータ処理が必要なタスクをグリッドに発行し、関連作業負荷の透過的な分散を行う方法をユーザーに提供します。ユーザーは、バッチジョブ、対話型ジョブ、および並列ジョブをグリッドに発行できます。本ソフトウェアは、管理者向けにジョブの監視と制御を行う包括的なツールを提供します。

本製品は、チェックポイント設定プログラムもサポートしています。チェックポイント設定ジョブは、ユーザーの介入なしに負荷の要求を基に、ワークステーション間で移行されます。

システムの動作

Grid Engine システムは次のすべてを実行します。

リソースを要求に対応させる

たとえば、大都市にある「マネーセンター」としての大手銀行を想像してください。銀行のロビーでは多数の顧客がサービスを受ける順番を待っています。顧客にはそれぞれ別の用事があります。ある顧客は、口座から少額のお金を引き出そうとしています。このすぐあとに入ってきた顧客は、銀行の投資スペシャリストと会う約束があります。この女性は、複雑な投機を始める前にアドバイスを受けたいと考えています。最初の 2 人の前にいる顧客は、彼女の前の 8 人の顧客同様に高額のローンに申し込みたいと考えています。

それぞれ異なるニーズを持つ顧客は、銀行にさまざまなタイプとレベルのサービスを求めています。この日の銀行には、口座からの単純な引き出しを処理できる行員は多数いるかもしれません。しかし、多数のローン申込者に対応するローン担当者は 1 人または 2 人しかいないということも考えられます。別の日には、この反対の状況になることもありえます。

結果、顧客はいたずらにサービスを待つことになります。顧客の多くは、彼らのニーズが即座に認識され、使用可能なリソースと一致させられさえすれば、即座にサービスを受けられるはずです。

Grid Engine システムが銀行の支店長だったならば、サービスは別のやり方で整理されたでしょう。

ジョブとキュー

Grid Engine システムでは、ジョブは銀行の顧客に相当します。ジョブは、ロビーではなくコンピュータの保留領域で待機しています。ジョブにサービスを提供するキューは、銀行員に相当します。銀行の顧客の場合と同じで、使用可能なメモリー、実行速度、使用可能なソフトウェアライセンスなどのニーズといった各ジョブの要件は、それぞれまったく異なります。特定のキューだけが、それに対応サービスを提供できる場合もあります。

たとえば、Grid Engine ソフトウェア は次のように使用可能なリソースとジョブ要件を調整します。

使用ポリシー

クラスタの管理者は、サイトに適した条件によってカスタマイズされたハイレベルの使用ポリシーを定義できます。次の 4 つの使用ポリシーが使用できます。

ポリシー管理は、クラスタ内の共有リソースの使用を自動的に管理して、管理目標を最適な形で達成します。優先順位の高いジョブは優先的に振り分けられます。このようなジョブは、ほかのジョブとリソースを争っている場合に、より大きな CPU 共有を取得できます。Grid Engine ソフトウェア は、すべてのジョブの進行状況を監視し、適宜ポリシーで定義されている目標と照らし合わせて、ジョブの相対的な優先順位を調整します。

チケットの使用によるポリシーの管理

機能、共有ベース、および優先ポリシーは、チケットと呼ばれる Grid Engine システムの概念によって定義されます。 チケットは、株式会社の株式保有数に例えることができます。株式保有数が多いと、その株主の重要度は高くなります。株主 A が株主 B の 2 倍の株式を持っている場合、A の投票も B の 2 倍になります。したがって、株主 A は 2 倍重要だということになります。同様に、ジョブのチケット保有数が多いと、そのジョブの重要性は高くなります。ジョブ A がジョブ B の 2 倍のチケットを持っている場合、ジョブ A はジョブ B の 2 倍リソースを使用できます。

ジョブは、 機能、共有ベースおよび優先ポリシーからチケットを検索できます。チケットの合計数および各チケットポリシーから検索された数は、時間と共に変わります。

管理者は、各チケットポリシーに割り当てられるチケット数を全体として管理します。ジョブのチケット割り当てと同じように、この割り当てでは、チケットポリシー同士の相対的な重要性が判断されます。特定のチケットポリシーに割り当てられたチケットプールを通して、管理者は Grid Engine システムを複数の方法で実行できます。たとえば、システムを共有ベースモードだけで実行することもできます。または、90% が共有ベースモードで 10% が機能モードというように、モードを組み合わせてシステムを実行することもできます。

緊急度ポリシーによるジョブ優先順位の割り当て

緊急度ポリシーは、ほかの 2 つのジョブ優先順位指定と組み合わせて使用することができます。

ジョブには、次の 3 つを元に計算される緊急度の値を割り当てることができます。

管理者は、これらの各要素の重要性を別々に重み付けして、ジョブ全体の緊急度の値を割り出すことができます。詳細は、『Sun N1 Grid Engine 6.1 管理ガイド』の第 5 章「ポリシーとスケジューラの管理」を参照してください。

図 1–2 に、ポリシー間の相関関係を示します。

図 1–2 Grid Engine システムのポリシー間の関係

Grid Engine システムコンポーネント

次の節では、もっとも重要な Grid Engine システムコンポーネントの機能について説明します。

ホスト

Grid Engine システムの基本的なホストは、次の 4 種類です。

マスターホスト

マスターホストは、クラスタ全体の動作の中心に位置づけられます。マスターホストでは、マスターデーモン sge_qmaster と スケジューラ デーモン sge_schedd が実行されます。この 2 つのデーモンは、キューやジョブなどのすべての Grid Engine システムコンポーネントを制御します。デーモンは、コンポーネントのステータスやユーザーのアクセス権などに関するテーブルを維持しています。

デフォルトでは、マスターホストが管理ホストでもあり発行ホストでもあります。

実行ホスト

実行ホストは、ジョブの実行権を持つシステムです。したがって、実行ホストにはキューインスタンスが関連付けられています。実行ホストは、実行デーモン sge_execd を実行します。

管理ホスト

管理ホストは、Grid Engine システムの管理処理をすべて実行する権限を持つホストです。

発行ホスト

発行ホストでユーザーが発行および制御できるのは、バッチジョブだけです。特に、発行ホストにログインしたユーザーは、qsub コマンドでジョブを発行し、qstat コマンドでジョブステータスを監視し、Grid Engine システムの OSF/1 Motif グラフィカルユーザーインタフェースである QMON を使用できます。QMON については、「Grid Engine システムのグラフィカルユーザーインタフェースである QMONに説明があります。


注 –

システムは、複数の種類のホストとして機能できます。


デーモン

3 つのデーモンが Grid Engine システムの機能を提供します。

sge_qmaster – マスターデーモン

クラスタの管理およびスケジューリング処理の中心となる sge_qmaster は、ホスト、キュー、ジョブ、システム負荷、およびユーザーの権限についてのテーブルを維持します。sge_qmaster は、sge_schedd からスケジューリングに関する決定を受け取り、適切な実行ホストの sge_execd に処理を要求します。

sge_schedd – スケジューラデーモン

スケジューリングデーモンは、sge_qmaster によってクラスタのステータスの最新ビューを維持します。スケジューリングデーモンは、スケジューリングに関する次の決定を行います。

デーモンはこれらの決定を sge_qmaster に転送し、sge_qmaster は、要求された処理を開始します。

sge_execd – 実行デーモン

実行デーモンは、ホスト上のキューインスタンスおよびこれらのキュー インスタンス内のジョブの実行を担当しています。実行デーモンは、定期的にジョブステータスまたはホストの負荷などの情報を sge_qmaster に転送します。

キュー

キューは、1 台以上のホストで同時に実行できるジョブのクラス用のコンテナです。キューは、ジョブを移行できるかどうかなどの特定のジョブの属性を決定します。実行ジョブはその有効期間中キューに関連付けられています。キューに関連付けられていることで、ジョブで発生する事象の一部が影響を受けます。たとえば、キューが一時停止されると、そのキューに関連付けたすべてのジョブも一時停止されます。

ジョブをキューに直接発行する必要はありません。ジョブの要件プロファイルだけを指定すればすみます。プロファイルには、メモリー、オペレーティングシステム、使用可能なソフトウェアなどの要件が含まれます。Grid Engine ソフトウェア は、適切なキューと実行負荷が少ない適切なホストにジョブを自動的に割り振ります。指定したキューにジョブを発行すると、ジョブはそのキューと結合されます。結果として、Grid Engine システム デーモンは、負荷が少なくより適したデバイスを選択できなくなります。

キューは 1 台のホストに存在する場合と、複数のホストに及ぶ場合があります。このため、Grid Engine システムのキューはクラスタキュー とも呼ばれます。ユーザーと管理者は、クラスタキューを使用すると、1 つのキュー構成によって実行ホストのクラスタを同時に実行できます。クラスタキューに関連付けられた各ホストは、クラスタキューからそれぞれのキューインスタンスを受け取ります。

クライアントコマンド

コマンド行ユーザーインタフェースは、次の作業を行う補助的なプログラム (コマンド) セットです。

Grid Engine システムは、次の補助プログラムセットを提供します。

Grid Engine システムのグラフィカルユーザーインタフェースである QMON

ユーザーは、グラフィカルユーザーインタフェース (GUI) ツールである QMON を使用して、ほとんどの Grid Engine システムタスクを実行できます。図 1–3 に、ユーザーと管理者の機能の両方を開始することが多い「QMON Main Control」ウィンドウを示します。「Main Control」ウィンドウの各アイコンは、クリックするとさまざまなタスクを開始できる GUI ボタンです。機能の説明にもなっているボタンの名前を見るには、ボタンの上にポインタを置きます。

図 1–3 「QMON Main Control」ウィンドウの定義