Presentation is loading. Please wait.

Presentation is loading. Please wait.

Webサービス技術を基盤とするGridRPCシステムの評価

Similar presentations


Presentation on theme: "Webサービス技術を基盤とするGridRPCシステムの評価"— Presentation transcript:

1 Webサービス技術を基盤とするGridRPCシステムの評価
白砂 哲*1  中田 秀基*1*2  松岡 聡*1*3  関口 智嗣*2 *1 東京工業大学 *2 産業技術総合研究所 *3 科学技術振興事業団

2 GridRPC Grid用クライアント・サーバ型RPCシステム Ninf[AIST,TITECH], NetSolve[UTK]
高レベルの抽象化 直感的なAPI サーバによる動的なIDL管理 非同期呼び出しによるパラレルプログラミング 科学技術計算に適したデータのサポート 数値計算に適したIDL 引数の依存関係の記述 配列の部分的な転送(部分配列、配列のストライド)

3 GridRPCにおけるインタオペラビリティ
いくつかのシステム間ではブリッジが提供されている Ninf–NetSolveブリッジ [Nakada, et al. ’97] しかし、すべてのシステム間でブリッジを作るのは非現実的  もっと、一般的なインタオペラビリティが必要

4 XMLを基盤とするWebサービス Webインフラを用いてサービスを提供する標準的な方法を提供
SOAP (Simple Object Address Protocol) 分散環境化においてのメッセージ交換のための仕様 WSDL (Web Service Definition Language) Webサービスのインタフェース情報を記述する仕様 OGSAは、Webサービス技術をGridに適用しようとして いる OGSA:GlobusとIBMが提案している次世代のGridインフラ   Webサービス技術はGridRPCのインタオペラビリティを提供するための手段となりえる Webサービス技術が科学技術計算として用いることが可能かを評価することは重要

5 技術的問題 Webサービス技術をGridRPCに適応する際の技術的な問題点
XMLベースのSOAPによるパフォーマンスの低下 GridRPCのベースとしてのSOAP,WSDLの記述力 Webサービスは本来ビジネスアプリケーションを念頭に入れ作成 一方、GridRPCのIDLは科学技術計算に特化した機能を持つ Webサービス技術を基盤とするGridRPCを作成するためには、これらの問題点を評価する必要がある

6 SOAP/WSDLの記述力 GridRPC IDL vs. WSDL (1)
クライアントは実行時にインタフェース情報を取得 double A[n][n], B[n][n], C[n][n]; grpc_call(“dmmul”, n, A, B, C); Interface Request (HTTP Get) Interface Info. (WSDL/HTTP) GridRPC Server Arguments (SOAP) Result (SOAP) Interface Info (IDLWSDL) GridRPC Client

7 SOAP/WSDL記述力 GridRPC IDL vs. WSDL (2)
配列サイズの指定 GridRPCのIDLは配列サイズを他の引数を用いて記述可能  WSDLではこのような依存関係を記述できない 部分配列、配列のストライド GridRPCのIDLはこのようなさまざまな種類の配列を記述可能 SOAPはこのような配列を ”Partially transmitted array” として記述可能だが、WSDLには適合する仕様が存在しない 科学技術計算用のIDLをサポートするためには、WSDLに拡張が必要である Define dmmul(mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n])

8 SOAPによる性能低下 データサイズ増加による転送速度の低下 シリアライズ/デシリアライズのコスト プロトコルに起因の問題
XML表現による10倍以上のデータ量増加 (特に配列データにおいて問題) シリアライズ/デシリアライズのコスト プロトコルに起因の問題 プロトコル仕様によるパフォーマンスの低下 <input2 xmlns: ns2=“ xsi:type=“ns2:Array” ns2:arrayType=“xsd:double[2,2]”> <item xsi:type=“xsd:double”> </item> <item xsi:type=“xsd:double”> </item> <item xsi:type=“xsd:double”> </item> </input2>

9 性能評価 いくつかの実装による性能評価 行列の積 評価環境 Double型2次元配列
通信量: O(n2), 計算量: O(n3) (配列サイズ: nxn) 評価環境 LAN PrestoIIクラスタ (東京工業大学 松岡研究室) Connected with 100Base-T Switch Pentium III 800MHz, 640MB Memory Linux , IBM Java 1.3.0 WAN 東工大  産総研 (apx. 1Mbps) Sun Ultra-Enterprise, SPARC 333MHz x 6, 960MB Memory Solaris 5.7, Sun Java 1.3.0

10 第1プロトタイプ Apache SOAPを用いたナイーブな実装 サーバは Apache SOAP のサーバをそのまま利用
インタフェース情報はWSDLを用いて交換 Client Server Client Application Calculation Library Apache SOAP Server Ninf Client Apache SOAP Client Library Servlet Server (Tomcat) 1. Interface Request (HTTP Get) 2. Interface Info. (WSDL) / HTTP 3. Parameters / SOAP 4. Result / SOAP

11 第1プロトタイプ性能結果 XDR基盤の実装に比べ、性能低下が大きい LAN WAN

12 性能低下の原因 性能低下の一部はSOAPに起因 しかし、大部分は実装上の問題 Apache SOAPはXMLの解析にDOMパーサを利用
データ受信と解析を同時に行えない XMLデータ全体をDOMオブジェクトのツリーとしてメモリ上に構築 メモリ使用量の増加 オーバヘッドの増大 Client Server Serialization Sending Receiving Deserialization Computation

13 第2プロトタイプ シリアライズ、デシリアライズのコストを削減するために構築 第1プロトタイプでサポートされてない新たな機能のサポート
SAXパーサを基にした独自のSOAPパーサを採用 デシリアライズの速度向上 メモリ使用量の低減 受信とデシリアライズを同時に行う 第1プロトタイプでサポートされてない新たな機能のサポート Input/Outputパラメタのサポート 複数のOutputパラメタのサポート

14 第2プロトタイプシステム図 Server Client Client Application Calculation Library
Ninf Client Ninf Server SOAP Deserializer SOAP Serializer WSDL Reader WSDL Module SOAP Deserializer SOAP Serializer HTTP Client Servlet Server 1. Interface Request (HTTP Get) 2. Interface Info. (WSDL) / HTTP 3. Parameters / SOAP 4. Result / SOAP

15 第2プロトタイプ性能評価 パフォーマンスの向上が見られる しかし、まだ大きなオーバヘッドが存在する LAN WAN

16 Receiving+ Deserialization
オーバヘッドの解析 (1) Client Server 実際の計算前のオーバヘッドに注目 どの部分に時間が費やされているかを調査 それぞれのフェーズにかかる時間を測定 シリアライズ データの転送 デシリアライズ Overhead Serialization Sending Receiving+ Deserialization Computation Receiving+ Deserialization Serialization+ Sending

17 オーバヘッドの解析 (2) LAN WAN シリアライズ/デシリアライズのコストが比較的大 WAN環境ではデータ転送のコストが顕著化

18 Optimization1: HTTP Content-Length の削除 (1)
プロトコル仕様上起こる性能低下 HTTP Content-Length ヘッダフィールド HTTPサーバがメッセージの終端を検地するために必要 SOAPメッセージの長さを知るため、メッセージ全体をメモリ上に構築する必要がある  シリアライズ(クライアント側)と                    デシリアライズ(サーバ側)を                    並列化できない Client Server Serialization Sending Receiving+ Deserialization Computation

19 Optimization1: HTTP Content-Length の削除 (2)
SOAPにおいては、メッセージの終端をXMLタグの組を数えることで判別可能  Content-Lengthヘッダを省略することでシリアライズ(クライアント側)とデシリアライズ(サーバ側)を並列化可能 (しかし、RFC 1945, 2616に違反する) Client Server Client Server Serialization Serialization+ Sending Receiving+ Deserialization Sending Receiving+ Deserialization Computation Computation

20 Optimization1: HTTP Content-Length の削除 (3)
LAN環境ではオーバヘッドの55%が削減された WAN環境ではオーバヘッドの7%が削減された LAN WAN

21 Optimization1: HTTP Content-Length の削除 (4)
性能向上 メモリ使用量の低減 RFC準拠の方法が必要である 1. HTTP Chunked Transfer Coding の利用 2. SOAPメッセージの長さを推定し、残りを空白で埋める方法  これらの方法を評価する必要がある

22 Optimization2: Base64エンコード (1)
サイズの大きい配列ではオーバヘッドが大きい メッセージサイズの増大 XMLタグの増加 配列データをBase64エンコードする 配列データ全体をバイナリとして扱う 配列の情報はGridRPC IDLによって記述されており、動的に交換される e.g. サイズ, 範囲, ストライド これらをSOAPメッセージ内で表す必要はない

23 Optimization2: Base64エンコード (2)
LAN環境、WAN環境の双方において、オーバヘッドの75%が削減された LAN WAN

24 Optimization2: Base64エンコード (3)
XMLタグ数の減少によるXML解析コストの 減少 メッセージサイズの減少によるデータ転送のコストの減少

25 性能評価のまとめ オプティマイゼーションの結果、性能は大幅に向上した LAN WAN

26 まとめ Webサービス技術を用いたGridRPCの実装の可能性の評価を行った ナイーブな実装に比べ、大幅な性能向上が見られた
Base64エンコードの採用によりデシリアライズのコストの減少 HTTP Content-Lengthヘッダの削除により、シリアライズ、デシリアライズが並列化され、性能が向上 科学技術計算用のミドルウェアがOGSAの枠組みで可能であることを示した

27 今後の課題 さらなる性能向上 インタオペラビリティ OGSAへの適応
RFC準拠なHTTP Content-Lengthヘッダを省略する方法の評価 SOAPに特化したXMLパーサの開発 WSDLによって交換されるインタフェース情報を用い、受信メッセージに適した動的なXMLパーサの生成 C言語における実装 インタオペラビリティ インタオペラビリティの更なる評価 OGSAへの適応 OGSAの枠組み下でGridRPCの評価

28

29

30 SOAP/WSDL Expresibility(1)
Array size specification GridRPC IDLs support expression of array size using other arguments In order to enable pass arrays as reference  WSDL lacks the ability to express such dependencies Define dmmul(mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n]) Double A[n][n], B[n][n], C[n][n]; Ninf_Call(“dmmul”, n, A, B, C);

31 SOAP/WSDL Expresibility(2)
Subarrays, strides of array GridRPC IDLs support these various type of arrays SOAP supports this functionality as partially transmitted arrays But, WSDL does not embody any specification A[size : lower_limit, upper_limit, stride]

32 SOAP/WSDL Expresibility(3)
Web Service based GridRPC systems use parameterOrder attribute of WSDL to denote the order of parameter In WSDL, parameterOrder attribute is optional GridRPC client can not know the order of parameters when it encounters WSDL without parameterOrder attribute ….. <operation name = “dmmul” parameterOrder = “n A B C”>


Download ppt "Webサービス技術を基盤とするGridRPCシステムの評価"

Similar presentations


Ads by Google