Globus ToolkitによるGridRPC システムの実装と評価

Slides:



Advertisements
Similar presentations
VE 01 え form What is え form? え? You can do that many things with え form?
Advertisements

2006年9月27日 植田龍男 Webサービス II (第1回) 年9月27日 植田龍男.
IIS 4.0で開発をするコツ Webアプリケーション構築.
Windows HPC Server を使ってみる
Remote Method Invocation
ライブ・ストレージマイグレーション 機構の開発とその評価
最新ファイルの提供を保証する代理FTPサーバの開発
S. Tsuboi(1), H. Mizutani(1), N. Takeuchi(2) T. Arai (3), Y. Yanaka(3)
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
ROBOMEC2007チュートリアル RTミドルウエア講習会
読んだもの P0254R0: Integrating std::string_view and std::string およびその関連スレッド 稲葉 一浩.
英語勉強会.
第1回レポートの課題 6月15日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
鈴村 豊太郎† ,松岡 聡† ,中田 秀基†* † 東京工業大学 * 産業技術総合研究所
Webサービス技術を基盤とするGridRPCシステムの評価
COPPER/FINESSE System構築
Android Development 白熱道場
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
Hidemoto Nakada Yoshio Tanaka Osami Tatebe
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
2009年 3月 17日 法政大学 常盤祐司、児玉靖司、八名和夫、Ivan Ho、Billy Pham
報告 (2006/9/6) 高橋 慧.
Verb Plain Negativeform
ネットワーク構成法 スケール 第6回 11月19日.
最新情報技術を活用した超大規模 天文データ解析機構の研究開発
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
Fire Tom Wada IE dept. Univ. of the Ryukyus
富士通 SS研究会 2000/11/15 KEK 高エネルギー加速器研究機構 計算科学センター 八代茂夫
WebサービスII (第8回) 2007年11月14日 植田龍男.
都市情報学専攻 情報基盤研究分野  M04UC513  藤田昭人
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
グリッド環境に適したJava用階層型実行環境Jojoの設計と実装
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Flyingware : バイトコード変換による 安全なエージェントの実行
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
ストップウォッチの カード ストップウォッチの カード
Webサービスを使った クライアント・プログラム
アトラス実験における データ解析用グリッド環境の構築
DataGrid ミニワークショップ@天文台 12/12
動的なアプリケーション開発実行を可能にするグリッドポータルアーキテクチャ
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
Net Liaison 技術概要 沖電気工業(株) 福田 春生.
Jh ISJ 渡場 康弘 (大阪大学) Software-Defined IT インフラストラクチャにおける オーケストレーションに向けた資源管理システム 背景 Information-as-a-Service (InfaaS): 災害管理(Disaster Management)を支援するアプリケーション基盤を実現する上で重要なコンセプト.
グローバルコンピューティング シミュレータの概要
表紙.
オーバレイ構築ツールキットOverlay Weaver
Java Bytecode Modification and Applet Security
Grid環境におけるモニタリング手法の評価
インターネットにおける真に プライベートなネットワークの構築
情報センターの現在と未来 武蔵大学情報システムセンター 小野成志 2003年5月16日 (C) 小野成志/武蔵大学.
端末およびサービス透過的な 情報閲覧支援システムの構築
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
ネットワークをシンプルにする エンタープライズ NFV
Java における 先進的リフレクション技術
IBM UTM監視サービス セキュリティー運用監視のアウトソーシングで、業務効率化&コスト削減
Fire Tom Wada IE dept. Univ. of the Ryukyus
Db2 Warehouse on Cloud Db2 on Cloud フルマネージドサービス提案時の注意点
Cluster EG Face To Face meeting
理工学部情報学科 情報論理工学研究室 延山 周平
プログラム分散化のための アスペクト指向言語
卒業論文に向けて(3) 学部4年生 島本 大輔 2004年11月11日.
B2 須山哲 (susan) 所属:Stream
Microsoft Office Project Server 2007
セッション名: (35) システム化技術 講演番号 2P
Dynamic Function Placement for Data-intensive Cluster Computing
中田 秀基(AIST/Titech), 田中 良夫(AIST) 松岡 聡(Titech/JST), 関口 智嗣(AIST)
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

Globus ToolkitによるGridRPC システムの実装と評価 田中良夫、中田秀基、関口智嗣 (産総研) 平野基孝 (SRA)   佐藤三久 (筑波大) Advanced Industrial Science and Technology

GridRPC グリッドにおけるRPC server client arguments results 簡単で使いやすいプログラミングモデルを提供 特にタスク並列なプログラムに対して有効 (c.f. MPI) アプリケーション、ポータルに対するミドルウェアとして非常に注目されている。 現在Global Grid Forumにて プロトコル等の標準化に ついて議論を進めている client server arguments results Advanced Industrial Science and Technology

Ninf: GridRPCシステム 非常に簡単なAPI・ツールを提供 クライアント側の負担が少ない (no IDL) 既存のライブラリのリモートライブラリ化 既存のアプリケーションのグリッドへの移植 クライアント側の負担が少ない (no IDL) ’96にVer.1がリリース。様々なグリッド技術の研究に利用。 Globus Toolkitを用いて実装中(Ninf-G) double A[n][n],B[n][n],C[n][n]; /* Data Decl.*/ dmmul(n,A,B,C); /* Call local function*/ Ninf_call(“dmmul”,n,A,B,C); /* Call server side routine*/ Advanced Industrial Science and Technology

Outline Globus Toolkitについて Ninfの概要 Ninf-Gの設計、実装 予備評価 まとめと今後の展望 Advanced Industrial Science and Technology

Globus Toolkit Globus Project(1995年~)により提供されているツールキット グローバルコンピューティングの様々な要素技術を提供 ユーザ認証、通信、遠隔資源管理・監視機構… Globusを用いてソフトウェア/ミドルウェアを構築 I-WAYやGUSTOなどのテストベッドによる実験 MPICH-G/G2 (Grid enabled MPI) 最新版はバージョン1.1.4 グローバルコンピューティングシステムのソフトウェアインフラストラクチャを構成する要素の事実上の標準になりつつある Advanced Industrial Science and Technology

Core Globus Services API + User Command Resource Management (Globus Resource Allocation Manager, GRAM) Communication (Nexus/Globus IO) Information (Metacomputing Directory Service, MDS/GRIS/GIIS) Security(Globus Security Infrastructure, GSI) Remote Data Access (Globus Access to Secondary Storage, GASS) Executable Management (Globus Executable Management, GEM) API + User Command Advanced Industrial Science and Technology

GRAM 遠隔計算資源割り当て、管理を行う (遠隔資源上でジョブを実行する手段を提供) ジョブの送信、管理、停止のためのAPIを提供 LSFやCondorなどの資源管理ツールを利用することができる。独自に開発したスケジューラを容易にGRAMに組み込める。 Advanced Industrial Science and Technology

Scheduler Specific Plugin Client State change callback Client API local Job request reply Job cancel Job request remote Gatekeeper (root) Job Manager (user) Scheduler Specific Plugin fork/exec fork/exec condor/lsf % globus-job-run foo.aist.go.jp /bin/hostname Job Process Advanced Industrial Science and Technology

MDS/GRIS/GIIS MDS: Metacomputing Directory Service GRIS: Grid Resource Information Service 各資源の情報を提供 GIIS: Grid Information Indexing Service (仮想的な)組織全体の情報を提供 LDAPを用いて実装(GRIS/GIISともにslapd) ~Ver.1.1.2 push model Ver.1.1.3~ pull model GRISは指定されたスクリプトを指定された間隔で実行し、情報をアップデートする。 Advanced Industrial Science and Technology

Lower-level Grid Systems Ninf - a Grid RPC system グリッドにおけるアプリケーションの実装を容易にするミドルウェア 例 Ninf (AIST/ TITECH) NetSolve (U. Tennessee, UCSD) Application Grid RPC Lower-level Grid Systems Advanced Industrial Science and Technology

Ninf architecture and protocol Server side Client side Server side setup Make Remote Library Executable Register it to the Ninf Server Use remote library Retrieve interface information Invoke Remote Library Executable It Calls back to the client IDL file Numerical Library Remote Library Executable Generate Client IDL Compiler Connect back Invoke Executable Interface Request Interface Reply fork Ninf Server Register Advanced Industrial Science and Technology

Ninf implementation overview Client API Provides users easy to use API Remote Library Executable Execute numerical operation Ninf Server Provides library interface info. Invokes remote library executable IDL compiler Compiles Interface description Generates 'stub main' for remote library executable Helps to link the executable Ninf Register driver Registers remote library executable into the Server Advanced Industrial Science and Technology

Ninf-G: Ninf on Globus Toolkit GridRPCのコア部分を提供 GridRPCシステムのdefacto standardを目指す スケジューリング、耐故障性などの研究に利用 Globus Toolkitを用いる理由 セキュリティ(GSI/CA認証局運営) GRAMの利用(様々なシステムの運用ポリシーはGlobusが吸収) … Globus ToolkitのGridRPC packageとして配布 (e.g. mpich-g/g2) Advanced Industrial Science and Technology

Ninf-G - basic design Ninfサーバの機能をMDSおよびGRAMに置き換える 引数情報はGRISから引き出す そのためのLDIF fileを生成する リモートライブラリはGRAMにより起動する Advanced Industrial Science and Technology

Ninf - Original Client side Server side IDL file Client IDL Compiler Numerical Library Remote Library Executable Generate Client IDL Compiler Connect back Invoke Executable Interface Request Interface Reply fork Ninf Server Register Advanced Industrial Science and Technology

Interface Information Ninf-G Client side Server side IDL file Numerical Library Client IDL Compiler Connect back Invoke Executable Generate Interface Request Interface Reply fork Remote Library Executable GRAM GRIS Interface Information LDIF File retrieve Advanced Industrial Science and Technology

GRISへの登録 Generate LDIF file インタフェース情報は Base64 によりコード化 Put the file at ${globus-deploy-dir}/etc/gridrpc dn: rpcFuncname=perf/pingpong, sw=GridRPC hn=ninf.aist.go.jp, dc=gci, dc=jp, o=Grid objectclass: GridRPCEntry hn: ninf.aist.go.jp rpcFuncname: perf/pingpong module: perf entry: pingpong path: /home/ninf/tests/pingpong/_stub_pingpong stub:: PGZ1bmN0aW9uICB2ZXJzaW9uPSIyMjEuMDAwMDAwIiA+PGZ1bmN0aW9uX25hbWUgbW9kdWxlPSJwZXJmIiBlbnRyeT0icGluZ3BvbmciIC8+IDxhcmcgZGF0YV90eXBlPSJpbnQiIG1vZGVf … Advanced Industrial Science and Technology

Ninf Ver.1 Ninf-G client client Ninf Protocol Ninf server Globus API _stub_dmmul client Ninf_call(dmmul, …); Exec Path: /usr/ninf/stubs/dmmul/_stub_dmmul Parameter Info: IN int n, IN double a[n], … Ninf-G Globus API gatekeeper _stub_dmmul client LDAP search Ninf_call(dmmul, …); GRIS Exec Path: /usr/ninf/stubs/dmmul/_stub_dmmul Parameter Info: IN int n, IN double a[n], … Advanced Industrial Science and Technology

Ninf-G Installation Steps Globus Toolkit のインストール Ninf-G のインストール GRIS用の directory 作成 ${globus-deploy-dir}/etc/gridrpc Change the mode of the directory GRIS のコンフィグレーションファイルを編集 次の1行を追加: 0 cat ${localstatedir}/gridrpc/*.ldif Advanced Industrial Science and Technology

Ninf-Gの使い方 サーバ側 クライアント側 リモートライブラリのためのIDLファイルの記述 IDL Compilerを用いてIDLファイルをコンパイル 生成されたmakefileを用いてmakeを実行 make -f XXX.mak install を実行してリモートライブラリを登録 クライアント側 Ninf APIを用いてプログラムを記述 Ninfが提供するコンパイラドライバを用いてコンパイル grid-proxy-init を実行してユーザ認証を行なう プログラムを実行する Advanced Industrial Science and Technology

予備評価 下記の時間を測定 実行したプログラム 実験環境 GRIS lookup GRAM invocation PingPong – 計算なし 実験環境 LAN: intra AIST: 100 base/T WAN: inter Titech - AIST: Fore: 200KB/sec Back: 600KB/sec Advanced Industrial Science and Technology

Result (LAN) GRIS Lookup costs around 5 seconds GRAM invocation costs around 1 second Advanced Industrial Science and Technology

Result (WAN) GRIS Lookup costs around 5-20 seconds GRAM invocation costs around 4-6 second Advanced Industrial Science and Technology

実験結果の考察 GRIS lookupおよびGRAMによる起動の時間はネットワークの性能(遅延、バンド幅)に依存 サーバの更新時に即座に情報を更新したいが、その方法がない バックエンドをいじって、pushできるようにしてしまう? GRIS lookupの結果はクライアント側にキャッシュされる GRIS lookupは最初の1度だけでよい 0 cat ${localstatedir}/gridrpc/*.ldif Advanced Industrial Science and Technology

まとめと考察 GridRPCのコア部分を提供 Globus Toolkitにより Globus ToolkitのGridRPCパッケージとして配布 クライアント側でもGlobus Toolkitのインストールが必要 バイナリ配布等パッケージ化作業に期待 Advanced Industrial Science and Technology

やるべきこと Globus I/O を用いた通信(リモートライブラリからクライアント側への通知等) Fault Management Callbackベースのお作法 Fault Management CoGによるJava Client クラスタ用ジョブマネージャの作成 Computing Portal OpenGR http://ninf.apgrid.org Advanced Industrial Science and Technology

Ninf IDL Easy to publish existing library Interface Information Just write an IDL file and compile it Interface Information library function’s name, and its alias (Define) arguments’ access mode, data type (mode_in, out, inout, ...) required library for the routine (Required) computation order (CalcOrder) source language (Calls) Define dmmul(mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n]) “ description “ Required “libXXX.o” CalcOrder n^3 Calls “C” dmmul(n,A,B,C); To publish ext libs , only you have to do is write an information description file for the library As you can see, it is very strait forward. Its just like C prottotye except for the I/O mode Advanced Industrial Science and Technology

Protocol Porting Client Server Executable Ninf Ninf-G GRIS/GIIS Client 1. Interface Request 2. Interface Reply Client Server 3. Invoke Executable Executable 4. Connect back Ninf Ninf-G 1. Interface Request GRIS/GIIS 2. Interface Reply Client GRAM Gatekeeper 3. Invoke Executable Executable 4. Connect back Advanced Industrial Science and Technology

Ninf RPC Protocol Two-phase, runtime exchange of interface info No client stub routines (cf. SunRPC) No modification of client program when server’s libs updated Client library stays relatively static Client Program Ninf library program Result Argument Client Library Interface Info Stub Program Interface Info Interface Info. Interface Request Ninf Server Interface Info Advanced Industrial Science and Technology

Examples of NES systems Netsolve (UTK) Ninf (ETL/TITECH) Nimrod, Nimrod/G Punch RCS CORBA-based sys. (several) …etc. Intermediary position between Grid Portals and Grid Components (ease-of-use, automated programming interface on top of components) Advanced Industrial Science and Technology

Ninf: Features At-a-Glance Ease-of-use, client-server, Numerical-oriented RPC system User’s view: ordinary software library Asymmetric client vs. server Transparent server discovery Problem solved on an arbitrary network node running the Ninf server Dynamic allocation of resources with metaserver Data Access: NinfDB, WebAccess Client APIs: Fortran, C/C++, Java, COM etc. Advanced Industrial Science and Technology

Basic Ninf Client API Ninf_call(FUNC_NAME, ....); FUNC_NAME = NAME | ninf://HOST:PORT/ENTRY_NAME API for C, C++, Fortran, Java, Lisp, COM, Mathematica, ... No client stub generation (c.f., CORBA) double A[n][n],B[n][n],C[n][n]; /* Data Decl.*/ dmmul(n,A,B,C); /* Call local function*/ Ninf_call(“dmmul”,n,A,B,C); /* Call Ninf Func */ “Ninfy” via IDL descriptions Advanced Industrial Science and Technology