広域分散アプリケーション特論
2005前期 月曜 ３時限
場所：情報基盤センター３Ｆ 多目的講義室
担当 青柳 睦aoyagi@cc.kyushu-u.ac.jp
6月6日（月） 本日のみ工学部防音講義室２０１
講義の内容，成績評価方針(server-500.cc.kyu・・)

サイエンスＧｒｉｄ ＮＡＲＥＧＩ
Globus, Unicoreの現状
・ Unicore基本層の概要
・ NAREGIミドルウェアの概要

講義の内容

グリッドの概要
Ｇｒｉｄコンピューティングとは ■サイエンス分野での利用■ビジネス分野での利用■

計算科学の概論
主要なシミュレーション手法■

サイエンスＧｒｉｄ ＮＡＲＥＧＩ

Globus, Unicoreの現状 ■NAREGIミドルウエア概要■連成計算とその類型化
 Globus Tool Kit version 4■GT4の動向に依存・・

講義資料はWebで公開
server-500.cc.kyushu-u.ac.jp

Unicore 基本層の概要
UNICOREとは
 UNICOREのアーキテクチャ
 UNICOREの構成
 UNICOREにおける「サイト」
 サブジョブ


UNICOREとは

UNiform
Interface to COmputing
REsources
UN
CORE
 グリッドミドルウェア（グリッドサービスレイヤの第２階層をサポート）のひとつ
 ヨーロッパ（主にドイツ）を中心とした研究チームの研究成果（富士通ヨーロッパ、Pallas社（現在Intelが資金サポート）などベンダー企業も参加）■ OGSA 対応に向けた動き
今後，欧州のUniGrid プロジェクトへ統合UNICOREの記述言語

Ｊａｖａ Ｐｅｒｌ

Ｇｌｏｂｕｓと比べて…
•クライアントを含む統合環境を提供•Windows上でも利用可能•Webとの親和性が高い•限られたポートを空ければ利用できる

UNICOREのアーキテクチャ
３階層構造

ユーザレベル

ClientサーバレベルGateway Network Job Supervisor: NJS

バッチサブシステム

Target System Interface： TSIUNICOREのアーキテクチャ
UNICOREクライアント

UNICOREクライアント
GUIを提供 ジョブの作成、送信、制御が可能→ワークフロー機能を標準で実装
 X.509にもとづいた証明書→クライアント証明書


最新版はUnicore５.3クライアント（2005年5月30日時点）

UNICOREクライアント（Pallasオリジナル版）

ワークフロー例
リソース一覧UNICOREクライアント

Keystore Editorに証明書を登録するクライアント証明書(aoyagi.p12)
 認証局証明書(unicore-org-ca-cert.pem)サーバレベルの証明書
Gateway
X.509にもとづいたGateway証明書と認証局証明書が必要 NJS
X.509にもとづいたNJS証明書と認証局証明書が必要


UNICOREではクライアントもサーバサイドも全てX.509にもとづいた証明書で認証を行う

UNICOREのアーキテクチャ

UNICORE
GatewayNJS
UUDBGateway

UNICOREサービスへの認証機能を持つFirewallの外に置くことで、Firewall内にあるコンピュータ資源を比較的容易に使用可能
UNICOREクライアントとNJSの橋渡し役

NJS


Abstract Job Objectで表現された抽象的なリクエストを具体的なジョブに変換しTSIに投入

TSI




NJSで具体化されたジョブをコンピュータ資源上で実行
UNIX版はPerlで記述

UUDB



クライアント証明書と計算機上のユーザ名とのマッピング情報を保存
ＵＵＤＢ
証明書がaoyagi.p12と一致するときはユーザ名
aoyagiとして動作せよ
GW
aoyagi.p12

ＮＪＳ

全体のプロセスフロー
1.

2.

3.
4.

5.

6.

Javaオブジェクトである
AJOに変換Gatewayで証明書をチェック
NJSにジョブを転送
UUDBにユーザマッピングを問い合わせNJSがAJOを具体的なジョ
ブに変換
TSIがコンピュータ資源上で実際にジョブを実行セキュリティ

X.509証明書を使用
 認証はGatewayで行う
 通信はSSL Gateway機能により、比較的容易にFirewall
内のコンピュータ資源を使うことができる(c.f. Globus )UNICOREのSITE

USITE（Unicore SITE）
幾つかの計算リソースのまとまったもの≒Gateｗａｙ
VSITE（Virtual SITE）
計算リソースそのもの≒ＮＪＳ,ＴＳＩUNICOREのSITE

USITE１USITE２VSITE
USITE３
USITE

拡大

VSITE

サブジョブサブジョブ

拡大サブジョブVSITE上で実行する仕事(ジョブ)の単位
 フローでサブジョブを追加した時点で、VSITEを指定する必要がある
 サブジョブの実行はUSPACE上で行われる
 サブジョブの中にサブジョブを作ることはできないサブジョブとスペース


USPACE
サブジョブ実行のための仮想の作業エリア
 NJSによって指定XSPACE

VSITEの任意のファイルスペース

NSPACEUNICOREクライアント上の任意のファイルスペースサブジョブとスペース

サブジョブはUSPACE上で実行されるので…
→ 実行モジュールのカレントディレクトリはUSPACEになることに注意

サブジョブ間でのデータのやりとりが重要サブジョブとスペース
Transfer（USPACE→USPACE）
SubJob2

SubJob1
fileImport（XSPACE→USPACE）
SubJob1

$HOME
file


file

file

Export（USPACE→XSPACE）
SubJob1

$HOME
file

file

UNICOREとNAREGIプロジェクト
サーバレベルのUNICOREをベースとし，ミドルウェア
基本層部分の改良（OGSA化） ｂｙ WP1
 上位層部分（ワークフロー，PSE，可視化）の追加
 サイト間接続を行った実証試験
 グリッドアプリケーションの実装
 Globus等 他グリッドミドルウェアとの連携協力
OGSA 国際標準化
 国内のCyber Science Infrastructure としてCondor,Globus,…etc…

NAREGIプロジェクトの概要
基本層（WP1 東工大 松岡教授）■ スーパー・スケジューラ■ 分散情報サービス■ グリッドVM
上位層
WP3 国情研 宇佐見教授■ PSE■ ワークフローツール■ グリッド可視化

Programing層
WP2 産総研 関口博士
■ GridMPI■ GridRPC

ネットワーク＆認証層
WP2 大阪大学 下條教授
■ PKI
■ 認証連携 VO対応

Application層
WP6 九州大学 青柳■ Mediator■ 連成計算実証試験

ＮＡＲＥＧＩソフトウェア階層とWP1
１００Tflops級のサイエンスグリッド環境
ﾅﾉﾃｸｼﾐｭﾚｰｼｮﾝのｸﾞﾘｯﾄﾞへの対応
ﾊﾟｯｹｰｼﾞﾝｸﾞ、統合化

ｸﾞﾘｯﾄﾞ
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ-ｸﾞﾘｯﾄﾞRPC-ｸﾞﾘｯﾄﾞMPI

ｸﾞﾘｯﾄﾞ可視化

ｸﾞﾘｯﾄﾞ PSE

ｸﾞﾘｯﾄﾞ ﾜｰｸﾌﾛｰ
ｽｰﾊﾟｰｽｹｼﾞｭｰﾗ

分散情報サービス(ユーザ課金情報、
モニタリング)（Globus,Condor,UNICOREÎOGSA) Unicondore
グリッドVM
ﾈｯﾄﾜｰｸ通信基盤、性能評価、ｾｷｭﾘﾃｨ･認証
スーパSINET
国立情報学研究所

分子科学研究所

研究協力機関計 算 資 源

その他

WP1

OGSA

グリッドにおける科学技術計算プログラムの利用形態
アプリケーションシナリオ例（WP6)• 単一大規模並列アプリケー
ション

RISM-FMO連成– MPIによるSPMD型プログラムの
メタコンピューティング– GridRPC, Condorなどによるタ
スク並列型プログラム、特にパラ
メタ探索型

Mediator

Mediator
球内相関

水和構造に対するアダプティブメッシュ
RISM
溶媒分布
Mediator

FMO
電子エネルギー計算
Mediator

矩形内相関
等間隔メッシュ点上の溶媒分布によるクーロン相互作用• 複合型アプリケーション (複数のコンポーネントの連携)

分子上のマリケン電荷によるクーロン相互作用– 従来型ワークフロー– GridRPC, WS-SOAP RPCなど
による動的なコンポーネント
discovery, 連携– 連成アプリケーション (RISMFMOなど)• WP1,3,6が中心となり、WP2も協力して様々なuse caseの検討, 要求検討

溶質の分子サイト

溶媒のメッシュ構造

溶媒中ナノスケール分子の電子構造

電子状態ＳＣＦループ
ダイマー

モノマー

ダイマー

モノマー
初期化

統合
モノマー

モノマー

ダイマー

ダイマー

WP1に対するアプリからの機能要求「グリッドならではの実行環境管理」• 単純なワークフローだけでなく、複雑な動的連携アプリのグ
リッド資源への割り当て– 強力な実行管理マネジメント– 計算資源の発見・分散の隠蔽化– アプリケーションのライフサイクル管理(WP3)との連携• 様々な形態の大規模並列実行の実行時サポート– MPI/SPMD, GridRPC/Task Parallel, Condor/ParamSweep, さらに複雑な連成– (このために)コスケジュリング・サイト間セキュリティデレゲーション(w/WP5)• グリッド実行環境との「対話」– プログラム・計算資源にどのような要求があるか– 自分のアプリの実行状況はどうなっているか・いたかNAREGI スーパー・スケジューラ
Super-Scheduler (SS)あるジョブに対し (1) 利用可能な資源を発見し、(2) 適切なシステムを選択し、(3) そのジョブを投入する処理。
Meta-Scheduler
ある１つのジョブに対し複数のマシン資源を要求することが可能なスケジューラ。
(GFD-I.11 “Grid Scheduling Dictionary of Terms andKeywords” より)SSの一般動作
スーパー・スケジューラの処理概要
Phase 1 Resource Discovery

Phase 2 System Selection

1. Authorization Filtering

4. Gathering information (query)

2. Application requirement definitions

5. Select the system(s) to run on

3. Minimal requirement filtering

Phase 3 Run Job
6. (optional) Make an advance reservation
7. Submit job to resource
8. Preparation Tasks
9. Monitor progress (maybe go back to 4)

伝統的なジョブ・スケジューラ

10. Find out Job is done
11. Completion tasks(GFD-I.4 “Ten Actions When SuperScheduling” より)

GGF OGSAにおけるSSの位置づけ
OGSA-EM (実行管理) サービス群のやりとり
SubmitJob Manager

Discover &SelectExecution
Planning
Services (EPS)

Workflow
Manager

Register

Provision

Reserve

SubmitSuper Scheduler
Provisioning•Deployment•Configuration

Information
Services (IS)Reservation
UpdateDynamic
Installation &Configuration

Candidate Set
Generator (CSG)

Accounting
Services

Data
Container

Service
Container

Query

注意
EPS が予約サービスにアクセスしてもよい。

Job Queue,
UNIX host,
J2EE hosting
environment, etc.

(GWD-I “The Open Grid Services Architecture, Version 1.0” より)3.3 コンポーネント・サービス概要
NAREGI スーパー・スケジューラは、OGSA-EMS 仕様に従う、標準のサービス群から構成される。
EPS (Execution Planning Services)
EPS は、ジョブと資源の間の「スケジュール」と呼ばれる写像を構築するサービス。 EPS は、実行時間、経費、信頼性等のある種の目的関数を最適化しようとする。

CSG (Candidate Set Generator)
CSG は、あるタスクを実行可能な資源セットを決定する。具体的には、ジョブに対し実行可能なコンテナ（の Resource Handle）のセットを生成する。

RS (Reservation Service)
RS は、グリッド上の予約可能な多様な資源すべてに対して共通なインターフェイ
スを提供する。

2.1 ２種類の資源割当て

Job Manager

Workflow
Manager

Register

資源探索
Discover &SelectExecution
Planning
Services (EPS)

Provision

Accounting

SubmitGGF CDDLM

Provisioning•Deployment•Configuration

Candidate Set
Generator (CSG)

マシンを探
すか

Reserve

Information
GGF CMM(OASIS WSDM)
Services (IS)Reservation
UpdateData
Container

マシンを追
加するか

GGF RUS
Services

Service
Container

Query

注意
EPS が予約サービスにアクセスしてもよい。

Job Queue,
UNIX host,
J2EE hosting
environment, etc.

(GWD-I “The Open Grid Services Architecture, Version 1.0” より)2.2 相補的な資源探索/資源追加機能

マシンを追加するタイプ（資源追加型）

予備のマシン（マシン・プール）が前提

ジョブが要求するマシンがない場合
特別な環境が必要なジョブ（実行環境として、バージョン、パッチレベル、システム設定等の緻密な組合せで、信頼性を確保）

ジョブが要求するマシンが不足する場合
計算機センターのピーク時のキューの解消

ジョブの実行を秘密にしたいユーザ
創薬分野等のジョブ（秘密保持のためマシンを「貸切」。利用後は DISK の完全消去。）

マシンを探すタイプ(資源探索型）
上記、以外
既存マシンを共有し有効利用（計算機センター）
既存マシンを組合せて、大スケールのジョブ実行

2.3 資源探索における多段絞込み
資源探索型の各フェーズ
第１フェーズ： 構成管理 (CIM) 情報からの絞込み [CSG]
ハードウエア・ソフトウエア資源（静的）情報による候補絞込み（Ex. 10
万件→ 200 件）

第２フェーズ： Agreement Template からの絞込み [CSG]
公開された（一部の）ローカル・ポリシーからの候補絞込み（Ex. 200 件→ 100 件）

第３フェーズ： Metric 等からの絞込み [CSG or EPS]
動的情報からの候補絞込み（Ex. 100 件→ 20 件）
動的情報：ジョブ・スループット、平均待ち時間、空き状況等

第４フェーズ： 個別折衝による絞込み（最終選定） [RS]WS-Agreement を使った Reservation Service （Ex. 20 件→ 1 件）

2.4 多段候補絞込み - 第１フェーズ

GGF
JM

Resource Brokering Services
GGF
GGF
subscribe
OGSA
OGSA
notify
EPS
CSG

GGF
OGSA
IS
CIM-XML SOAP
over WS-RF /WS-NDB(Match Making Engine)

現状、適切な標準がなく、資源情報は
DMTF CIM を使って表現し、検索式に SQL を使い情報を固有の手段で獲得。
将来的には、標準の OASIS WSDM
(分散システム管理) + DMTF WSCIM も対象（上図）。

OASIS
WSDM (MUWS)
JP1
CDDLM
(Provisioning)

WebSAM

Resource (as a
CIM instance)
Ex.
ComputerSystem

SystemWalker
構成（システム）管理製品

2.5 多段候補絞込み - 第２フェーズ

GGF
JM

Resource Brokering Services
JSDL
GGF
GGF 4. Query RS#1 EPR GGF
JSDL
OGSA
OGSA
OGSA
候補の RS
5. Template
EPS
CSG
IS
RS#1 EPR
RS#1 EPR
JSDL
JSDL

GGF
OGSA
RS

RS#2 EPR

1. Register RS#1 EPR
2. GetResourceProperty(Template)…

現状、アクセス認可等は、Unicore のセキュリティ・フ
レームワークに沿っている。
将来的には、公開されたサービス・ポリシーからマシンを絞り込むために、WS-Agreement 仕様の
Template の採用も対象。

3. Subscribe(Template
Change)Agreement
Factory(PortType)GGF GRAAP(WS-Agreement)
GGF
OGSA
RS#1
Service
Container

GGF
OGSA
RS#2
Service
Container

2.6 多段候補絞込み - 第３/4フェーズ

第３フェーズ： Metric 等からの絞込み
基本アーキは「第１フェーズ」と同じ。動的情報の扱いが異なる点。
将来的には、需給の「予測サービス」も対象。

第４フェーズ： 個別折衝による絞込み（最終選定）
WSRF & WS-Agreement 仕様ベースの折衝機構を使う。予約
ベースの制御。
将来的には、優先ジョブに対する「低優先ジョブの予約引き剥がし」等の能動的な（再）スケジューリングも対象。

3.1 NAREGI スーパー・スケジューラの特徴
GGF 標準仕様に適合
自動資源探索(OGSA-EMS CSG / EPS)
¾ WS-Agreement 及び契約条項記述言語 JSDL をサポート
並列アプリに適した Meta-Scheduling をサポート (OGSA-EMS RS)¾ 複数資源の co-allocation と co-scheduling

Workflow Manager との緊密な連携
Workflow refinement / mapping に高い親和性

WP6 FMO-RISM を例に、高度なグリッド応用並列プログラ
ムの実行のためのグリッド基盤を提供する。

3.2 NAREGI スーパー・スケジューラの構成
JSDL
JSDL

Unicore NJS
Job Manager
☆
JSDL
JSDL

WP3
NAREGI
ClientRegister
Accounting
Hitachi
Services

Discover &SelectJSDL
JSDL

Execution
Planning
Services

Candidate Set
Generator

Reserve

Reservation

SubmitUnicoreNJS☆
Provisioning•Deployment•Configuration

Information
Information
Service
Services
UpdateQuery

Service
Container
NEC

GridVM☆： 現状の WSRF 実装は、セキュアなプロトコルを実装していないため、 Unicore AJO のセキュリティ・フレームワークを借りている3.4 ユーザ・ビュー
アプリケーション開発者は、ジョブの資源要件を JSDL 注１(+ MPMD ジョブの場合は NAREGI 拡張要素）で記述する。
エンドユーザは、実行マシンを指定する必要がない（但し、ワークフロー・エンジンを指定する必要がある）。また、デフォルトの資源要件に対し追加したり変更したりすることができる。
システム管理者（マシン所有者）は、GridVM にローカル・ポ
リシを設定。
グリッド管理者は、情報サービスにグリッド・ポリシを設定。
注１： JSDL: GGF のジョブ投入記述言語 (Job Submission Description Language)

3.3 EPS/CSG/RS サービスの連携概要
1 Abstract

5 (1) 14:00- (3:00)

JSDL
(256)

(2) Concrete
JSDL
(192)

Execution
Planning
Services+(3)Local RS1

Concrete
JSDL
(64)

6

Local RS2 (EPR)(4)Abstract Agreement Instance EPR

create anagreement
instance
Abstract
4 JSDL
(256)

Concrete
JSDL
(192)

Reservation
Service2with Meta-Scheduling
Abstract
JSDL
(256)

Candidates:
Local RS 1 EPR (192)
Local RS 2 EPR (64)Candidate Set
Generator

15:00-18:00

8
15:00-18:00
Concrete
JSDL(64)Service
Container

create anagreement instanceConcrete
JSDL
(192)

7
Cluster (Site) 1

3
Service
Container

Local RS #: Local Reservation Service #

Local
RS 1

Local
RS 2
Concrete
JSDL
(64)

9
Cluster (Site) 2

グリッド分散情報サービス◎ 大規模 研究グリッド 実運用環境；
・ 複数センターにまたがる研究グリッドの円滑な運用
・ 仮想組織(VO)に対する 動的な計算環境提供の実現に向けて、→ グリッドアカウンティング機能の開発（自分のジョブが いつ どこで どれだけ 実行されたかを捕捉）→ 管理者のグリッド運用業務を省力化する 分散情報システム・運用支援ツール開発（グリッド環境の資源,ユーザ,ログ,ポリシー等の監視／管理）
グリッド情報サービス の資源情報収集機能が基本＆ 集約した資源情報を基に資源制御を行うManagement Service※ 現実組織に即したService ＋ VO向けService

グリッド分散情報サービス
広域分散した複数の計算センターをまたがるグリッド資源情報、
様々なVO（仮想組織）向けの計算環境に関する情報を収集・蓄積。
最適なジョブ実行や VOのポリシーに基づく管理に必要な情報を検索・登録・通知する機能を提供。
サイト管理者

グリッドミドル

資源情報 検索、設定、通知

VO管理者

エリア情報

資源情報 検索、設定、通知

ＶＯ情報

サイト情報

Cell Domain

利用者

Cell Domain

Cell Domain Cell Domain
計算センター

VO管理

Cell Domain

サイト情報

Cell Domain

Cell Domain Cell Domain
計算センターNAREGI 分散情報サービスの特徴■ 一般的な資源記述 スキーマ
： CIM Schemaをベースとした資源情報モデルを採用→ 他のコンポーネントからの要求に柔軟に対応可能、
既存スキーマの包含性／拡張可能性(GGF/CGS,UR)、標準化対応[CIM: Common Information Model, CGS: CIM based Grid Shema, UR: Usage Record]■収集した情報をRDBへ蓄積： セルドメイン単位に分散して情報管理→ SQLによる資源探索、時系列データ解析■ Service i/f として OGSA-DAI（+ Client toolkit）, RUS を利用、Provider i/f は CIM/XMLのグリッドサービス化 (GT3.2)[DAI: Data Access & Integration, RUS: Resource Usage Service]■階層化して複数セルドメインを連結、上位階層での選択的情報集約■ GSIベースのアクセス制御■ VOに対応したグリッド情報サービス

OGSA-DAI [UK e-Science], CIMスキーマ [DMTF]
異なる管理ドメインにわたる様々な種類のグリッド計算資源情報；
CPU, メモリ, OS, ファイルシステム, スケジューラ , ミドルウェア, アプリ ,ユーザ情報、アカウント情報、資源利用記録、各種ログ情報 等々

について、・機種に依存しない形で統一的に表現 ⇒ CIM schema
・標準グリッドサービスとしてアクセス ⇒ OGSA-DAIする目的で利用。
ClientResource

OGSA
-DAI

Log

PolicyAccount

PerformanceUser… 互いの関連付けと属性が定義された
テーブル群

BudgetResource
Linux
Resource
PolicyLog

User
Account

UNIX
Budget

Log

AIX

Linux
Resource

SolarisUser

Account

BudgetPolicyサービス構成・CIMOM(CIM Object Manager)が情報を分類整理
・Aggregatorが階層的に情報集約 → RDB
Viewer・OGSA-DAI Client toolkitを利用してアクセス
・アカウンティング情報はOGSA-RUS経由

利用者
管理者

ClientInformation Service Node

(Resource
Broker etc.)

Java-API
APP

Clientlibrary

Information Service Node

DecodeService

OGSA-DAI

Notification

RDB
RUS
port

GridVM(Chargeable
Service)

Aggregate
Service(PostgreSQL)
ACL
Gridmap

軽量
CIMOM

Cell Domain
Information Service

OS
Processor
File System
Job Queue

Service

Grid
VM

Performance●●

Ganglia

Node A
Node B
Node C

SS/RB,GridVM

GWSDL(Usage Record登録) ... パラレルクエリ …

CIM Providers… 階層的な情報集約／フィルタリング

Cell Domain
Information Service

2004年度 分散情報サービス 研究開発
1. Super Schedulerへの資源情報検索サービスの提供… GridVMが提供するLocal Scheduler情報等を Resource Brokerへ

2. ジョブ単位のアカウンティング情報サービス
GridVMがGGF/UR形式で作成した利用記録を OGSA-RUS i/fで登録

3. セルドメイン情報サービスの軽量化
軽量CIMOM … 昨年度は OpenPegasus を使用→ 必要機能のみにスリム化、プロバイダ作成を容易化
Ganglia接続 … クラスタ内全ノードへの情報サービスインストール不要

4. RDBへ蓄積された CIMオブジェクトへのアクセスインターフェース
として OGSA-DAI を適用 … SQLによる 資源探索を Java-APIで実行可
5. 複数セルドメイン情報サービスの連結… 階層構造； パラレルクエリと選択的情報集約

6. 情報サービスへのアクセス制御（GSI）
7. VO向け情報サービス

Information Model based on CIM Schema ...
‘2004 /基本情報
ManagedElement(See Core Model)

ManagedSystemElement(See Core Model)

LogicalElement(See Core Model)

CIM_Device

EnabledLogicalElement

CIM_System(See Core Model)

FileSystem

LogicalDevice
string CreationClassName
string DeviceID
SystemDevice
string[] OtherIdentifyingInfo
string[] IdentifyingDescritptions

Processor
string Role
uint16 Family
string OtherFamilyDescription
uint16 UpgradeMethod
uint32 MaxClockSpeed
uint32 CurrentClockSpeed
uint16 DataWidthuint16 AddressWidthuint16 LoadPercentage
string Stepping
string UniqueID
uint16 CPUStatus

string FileSystemType
uint64 FileSystemSize
string Rootuint64 BlockSize
uint64 AvailableSpace
boolean ReadOnly

CreationClassName: string { key}
Name: string {override, key}

HostedFileSystem

Roles: string [] {write}

InstalledOS
NameFormat: {override, enum}
OtherIdentifyingInfo: string [ ]IdentifyingDescriptions: string [ ]Dedicated: uint16 [ ] {enum}
ResetCapability: uint16 {enum}
PowerManagementCapabilities:
uint16[ ] {D, enum}
SetPowerState ([IN] PowerState: uint32 {enum}[IN] Time: datetime) : uint32 {D}string EbcryptionMethod
string CompressionMethod

boolean CaseSensitive
boolean CasePreserved
uint16 CodeSetuint32 MaxFileNameLength
uint32 ClusterSize
uint16 PersistenceTypestring OtherPersistenceType
uint64 NumberOfFiles

ContainedDomain

Inheritance
Bold
Bold
Bold

existed for use
added for use
new in ‘04

InitialLoadInfo: string
LastLoadInfo: string
WakeUpTypes: uint16 {enum}

string CreationClassName
string Name
uint16 OSTypestring OtherTypeDescription
string Version
datetime LastBootUpTime
datetime LocalDataTime
sint16 CurrentTimeZone
uint32 NumberOfLicensedUsers

uint32 NumberOfUsers
uint32 NumberOfProcesses
uint32 MaxNumberOfProcesses
ComponentCS

UnitaryComputerSystem
NameFormat: string

Aggregation

NameFormat: String
PrimaryOwnerName: string {write}
PrimaryOwnerContact: string {write}

ComputerSystem

AdminDomain

Association

OperatingSystem

Systemstring CreationClassName
string Name

uint64 TotalSwapSpaceSize
uint64 TotalVirtualMemorySize
uint64 FreeVirtualMemorySize
uint64 FreePhysicalMemorySize
uint64 TotalVisibleMemorySize
uint64 MaxProcessMemorySize
boolean Distributed
uint32 MaxProcessPerUser

SystemPartition

NRG_OperatingSystemuint32 LoadAverageOne
uint32 LoadAverageFive
uint32 LoadAverageFifteen
uint32 NumberOfRunningProcesses

Schema for Job Queue
ManagedElement(See Core Model)

ManagedSystemElement

OrganizationalEntity(See Core Model)

CIM_System
Batch Jobs,Submission and Processing (GGF/CGS-WG/JSIM)

LogicalElement(See Core Model)

CIM_User
UserEntity

EnabledLogicalElement

UserContact
CreationClassName: string { key}
Name: string {key}GivenName: string
Surname: string {Req’d}
Mail: string
UserID: string
LocalityName: string
PostalAddress: string[]
StateOfProvince: string
PostalCode: string
TelephoneNumber: string(See Core Model)

SystemCreationClassName: string { key}
Name: string {override, key}

HostedJob CreationClassName: string { key}
Destination Name: string {override, key}

NameFormat: String
PrimaryOwnerName: string {write}
PrimaryOwnerContact: string {write}

Account

Service

JobDestination

CreationClassName: string { key}
NRG_Account Name: string { key }See Core Model

ForService

HostedService
AccountOnSystem

Roles: string [] {write}
ComputerSystem
NameFormat: {override, enum}
OtherIdentifyingInfo: string [ ]IdentifyingDescriptions: string [ ]Dedicated: uint16 [ ] {enum}
ResetCapability: uint16 {enum}
PowerManagementCapabilities:
uint16[ ] {D, enum}
SetPowerState ([IN] PowerState: uint32 {enum}[IN] Time: datetime) : uint32 {D}UnitaryComputerSystem
InitialLoadInfo: string
LastLoadInfo: string
WakeUpTypes: uint16 {enum}

JobQueue
QueueStatus: uint16 {enum}
QueueStatusInfo: string
DefaultJobPriority: uint32
MaxTimeOnQueue: datatime
MaxJobsOnQueue: uint32

BatchService
BatchSystemName: string
BatchSystemVersion: string

MaxJobCPUTime: uint32

SystemPartition

MaxJobExecutionTime: uint32

NRG_ClusterJobQueue
NumberOfNodesPerQueue: uint32

String[] ObjectClass;
String[] Descriptions;
String[] Host;
String[] LocalityName;
String[] OrganizationName;
String[] OU;String[] SeeAlso;
String[] UserCertificate;
String[] UserPassword;

PersonCommonName: string {Req’d}Manager: string
Title: string…

NRG_AccountComponentCS
NRG_JobQueue
NumberOfCPUsPerNode: uint32
MaxPhysicalMemorySizePerProccess: uint64 { units }MaxVirtualMemorySizePerProcess: uint64 { units }MaxFileSizePerJob: uint64 { units }userid: string

NRG_AccountOnJobQueue

NRG_UnicoreAccount

Bold
Bold
Bold

existed for use
added for use
new in ‘04

Schema for Usage Record
ManagedElement

1

ElementStatisticalData（SeeCoreModel)

ManagedSystemElement

StatisticalData（See Core Model)

InstanceID:string{key}ElementName:string

LogicalElement（See Core Model)
JobUsageRecord

H_UsageRecord
String KeyInfo;
String recordID {key};*
String createTime;
String storeSubjectName;
String storeTimeStamp;

H_UsageRecordID
String globalJobId
String globalUserID

H_UsageRecord
PropertyDifferentiatedInt number {key};

EnabledLogicalElement（See Core Model)

SystemCreationClassName: string { key}

Job
HostedJob
Destination

JobDestination
Jobs

Name: string {override, key}
NameFormat: string
PrimaryOwnerName: string
PrimaryOwnerContact: string
Roles: string[]

JobDestination
CreationClassName:0..1
string { key}

Name: string {override, key}

JobQueue
ComputerSystem
NameFormat: {override, enum}
OtherIdentifyingInfo: string [ ]IdentifyingDescriptions: string [ ]Dedicated: uint16 [ ] {enum}
ResetCapability: uint16 {enum}
PowerManagementCapabilities:
uint16[ ] {D, enum}
SetPowerState ([IN] PowerState: uint32 {enum}[IN] Time: datetime) : uint32 {D}UnitaryComputerSystem
InitialLoadInfo: string
LastLoadInfo: string
WakeUpTypes: uint16 {enum}

QueueStatus: uint16 {enum}
QueueStatusInfo: string
DefaultJobPriority: uint32
MaxTimeOnQueue: datatime
MaxJobsOnQueue: uint32

String JobStatus
datetime TimeSubmitted
datetime StartTime
datetime ElapsedTime
uint32 JobRunTimes...
datetime UntilTime
String Notify;
String Owner
uint32 Priority
uint PercentCompleteboolean DeleteOnCompletion
uint16 ErrorCode...

MaxJobCPUTime: uint32
ComponentCS*

ConcreteJob
String InstanceID {key};
String Name;
uint16 JobStatedatetime TimeOfLastStateChange

SystemPartition

BatchJob
String JobID
int MaxCPUTime
datetime TimeCompleted
String JobOrigination
String Task

Bold
Bold
Bold

existed for use
added for use
new in ‘04

Usage Record Schema(GGF/UR-WG)

H_UsageRecordNodeCountInt nodeUsage;
String description{key};
Int metric;

H_UsageRecordProcessors
Int processorUsage;
String description{key};
Int metric;
float comsumptionRate;

H_UsageRecordTimeDuration
String timeDuration;
String description{key};

H_UsageRecordTimeInstantString timeInstant;String description{key};

H_UsageRecordNetwork
Int networkUsage;
String description{key};
Int units;
int metric;

H_UsageRecordMemory
Int memoryUsage;
String description{key};
String volumeUnit;
String phaseUnit;
Int metric;
int type;

H_UsageRecordSwap
Int swapUsage;
String description{key};
String volumeUnit;
String phaseUnit;
Int metric;
int type;

H_UsageRecordCPUDuration
int type;
H_UsageRecordDisk
Int diskStorage;
String description{key};
String volumeUnit;
String phaseUnit;
Int metric;
int type;複数ドメイン情報サービスアクセス
クライアントは 上位階層の情報サービスに 自分用のDBを生成できる(1) クライアント向け情報集約DBを生成(2) 集約にあたってのフィルタリング条件を設定
ClientClient(Resource(Resource
BrokerBrokeretc.)
etc.)

Information Service Node
Aggregate
OGSA-DAI
Service

ClientlibraryJava-API(3) SQLクエリを実行
Information Service Node
ClientClientClientClientlibrary

OGSA-DAI

OGSA
-DAI

Aggregate
Service

Cell Domain
Information Service(2)の条件に従い自動で情報集約
OGSA-DAI
Cell Domain
Information Service

OGSA
-DAI
Cell Domain
Information Service

GridVMの概要
 グリッド環境向け仮想実行環境
グリッド環境向け仮想実行環境
 サイト環境を仮想化し、統一I/Fで上位MWと連携
サイト環境を仮想化し、統一I/Fで上位MWと連携 サイト資源を保護
サイト資源を保護
 実用的なグリッド環境を構築するための機能を補完実用的なグリッド環境を構築するための機能を補完 既存グリッドミドルウェアでは機能的に不十分
既存グリッドミドルウェアでは機能的に不十分
上位グリッドミドルウェア

GridVM

統一インタフェース

資源・ジョブ管理
メタコンピューティング

サンドボックス
セキュリティ

耐障害性
チェックポイント

異機種環境の仮想化

2004年度の研究開発
領域

クラスタソフトウェア ローカルスケジューラ
オペレーティングシステム
NW
CPU
メモリ
ディスク

標準仕様に基づく他MW連携
 各サイト上の資源管理およびジョブ管理サービスを各サイト上の資源管理およびジョブ管理サービスを標準仕様に基づいて提供
標準仕様に基づいて提供
ジョブ

将来は
WSRF化

スーパー
スケジューラ

資源情報

資源予約、ジョブ投入
監視、制御
JSDL
JSDL
統一I/F(Java)でサービス利用

GridVM

GridVM

情報
サービス

CIM
資源
情報

UR/RUS
アカウン
ティング

メタコンピューティング
ジョブ

並列処理や
コアロケーションに対応できるように標準仕様を拡張スーパー
スケジューラコアロケーション
JSDL
JSDL
資源を同時に使えるように予約

export IMPI_SERVER_IP=clusterX.naregi.org
export IMPI_SERVER_PORT=5963
export IMPI_CLIENT_ID=1
export _YAMPII_CONFIG_FILE = …

GridVM

export GRIDVM_GLOBAL_JOB_ID=XXX
export GRIDVM_GLOBAL_USER_ID=‘/O=Grid/...’
export GRIDVM_SUBJOB_ID = YYY
export GRIDVM_LAUNCHER=gvm_launch

サイトA

予約時間に
ジョブを開始IMPIサーバ

GridVM

GridMPI$GRIDVM_LAUNCHER lmpirun –np 128 ./app

9 JSDLからローカルMPI起動スクリプトを生成・実行
9 IMPIサーバや実行ノードの設定など

サイトB

NAREGI JSDLJSDLによる資源予約およびジョブ投入
JSDLによる資源予約およびジョブ投入
NAREGI向けに拡張して使用
NAREGI向けに拡張して使用
NAREGI JSDL（一部)属性

説明/naregi-jsdl:SubJobID

サブジョブID/naregi-jsdl:CPUCount

ジョブに必要な総CPU数/naregi-jsdl:TasksPerHost

ホスト当たりのタスク数/naregi-jsdl:TotalTasks

MPIタスク数/naregi-jsdl:NumberOfNodes

必要ホスト数/naregi-jdsl:CheckpointablePeriod

チェックポイント採取間隔/jsdl:PhysicalMemory

ジョブの各プロセスが使用可能な物理メモリ/jsdl:ProcessVirtualMemoryLimit

ジョブの各プロセスが使用可能な仮想メモリ/naregi-jsdl:JobSatrtTrigger

予約開始時刻/jsdl:WallTimeLimit

ジョブ実行時間/jsdl:CPUTimeLimit

CPU時間/jsdl:FileSizeLimit

最大ファイルサイズ/jsdl:Queue

キュー名

並列処理向け拡張

コアロケーションの時間指定

サンドボックスセキュリティ
 外部ジョブからローカル環境を保護
外部ジョブからローカル環境を保護 サイト資源のアクセス保護や利用超過防止
サイト資源のアクセス保護や利用超過防止
 今年度は、要件定義、アーキテクチャ、実現方式を研究し、今年度は、要件定義、アーキテクチャ、実現方式を研究し、ポリシーベースのファイルアクセス保護機能を試作
ポリシーベースのファイルアクセス保護機能を試作ポリシーによるきめ細かい
アクセス保護を実現

グリッド環境① ジョブ※ GridVM個別展示にてデモ予定

サイトポリシージョブ

Permit:subject=X
target=/etc/passwd
action=read

資源
グリッドで
利用
ローカル
環境

グリッドで
利用
ローカル
環境

② ポリシー GridVM
ポリシーエンジン⑤ permit④ 問い合わせSTOP

システムコール監視③ トラップ

ユーザXのプロセス
open(“/etc/passwd”, O_RDONLY)⑥ 実行

WP1: 2005年度研究開発• GGF, OASISなどでの標準化への更なる貢献「標準とその技術を握る」「持続的なインフラ構築へ標準化および連携戦略」– OGSA-EMS, JSDLなど、各種 WGへの貢献– 欧州UniGridとのOGSA実装における密な連携– 各種ローカルスケジュラの開発会社へのVMコードの提供・連携– WSRFのCバインディングの開発– Globus 4.0へのJava WSRFインフラおよびサービスの移行・連携

来週（６月１３日）の講義は情報基盤センター多目的講義室

次週は・ Globus，Unicore の実演
・ NAREGIミドルウェアの概要（続き 上位層＆プログラミング層）

を予定しています．

レポート課題2 (2005.5.23 出題)の〆切は６月６日（月）深夜ですので忘れないように．