SACSIS’03レポート 金田憲二 1 SACSIS • Symposium on Advanced Computing Systems and Infrastructures – 先進的計算システム 例)グリッド技術、ディペンダブルコンピューティング – 先進的計算システムを支える基盤技術 例)ネットワークセキュリティ、プログラム言語処理系 – 実用的基盤システム 120 100 投稿数 例)検索エンジン 80 60 40 20 0 94 95 96 97 98 99 年度 00 01 02 2 03 SACSISプログラム (1/2) • 基調講演 – 分子コンピューティング • 萩谷昌已(科技団/東大) – ユビキタスコンピューティング • Tim Kindberg@HP Lab. • チュートリアル – 組込みシステムの開発の現状と課題 • 高田広章(名大) – XMLとWebサービスにおけるセキュリティ • 丸山宏(日本IBM) 3 SACSISプログラム (2/2) • • • • • • • • • 数値計算 キャッシュ・アーキテクチャ プロセッサ・アーキテクチャ グリッド クラスタ・コンピューティング システムとツール アプリケーション ネットワーク プログラム言語システム • データ管理 • データ処理 • ネットワーク・セキュリティと OSカーネル • 設計技術と再利用 4 発表の構成 • 分子コンピューティング – 萩谷昌已(科技団CREST/東大) • 並列計算機におけるキャッシュを意識した自動メモリ管理機構 – 松田聡、鎌田十三郎(神戸大) • 組込みシステムの開発の現状と課題 – 高田広章(名大) • SpecCにおけるソフトウェア記述の実装記述への変換 – 本田晋也、高田広章、中島浩(豊橋技科大) • 仮想ネットワークアーキテクチャによる ネットワークワイドな保護機構 – 廣津登志夫、福田健介、光来健一、明石修、佐藤孝治、 菅原俊治(NTT未来ねっと研) 5 分子コンピューティング (基調講演) 萩谷昌已 (科技団CREST/東大) 6 分子コンピューティングとは • 分子を用いて人間の意図した情報処理を行う こと 例)DNAを用いたデータ処理 7 分子コンピューティングの理論モデル • Adleman-Lipton (1994) – データ並列計算による解の抽出 ※有向ハミルトンパス問題 • Winfree-Seeman (1996) – DNA分子の自己組織化 • など 8 有向ハミルトンパス問題 – 指定されたスタートとゴールをもつ有向グラフGが 任意に与えられるとき、Gがハミルトンパスをもつ か否かを決定する問題 • NP完全 4 3 0 スタート ゴール 1 6 2 5 ※ハミルトンパス:全ての頂点をちょうど一度だけ含むパス 9 Adlemanの解法 (1/4) 概要 1. 入力グラフGをDNAで符号化 2. 大量のDNAによりパスをランダムに生成 3. 生成されたDNAから解となるパスを抽出 – スタートで始まりゴールで終わるパス – 頂点数と同じ長さのパス – 全ての頂点を含むパス 10 Adlemanの解法 (2/4) 1. 入力グラフGをDNAで符号化 – ノード:DNA配列 – エッジ:始点・終点を半分づつ連結したものの 相補配列 ノード1 ノード0 AAT C C G ATTGAC 相補性 ノード0からノード1 へのエッジ G G C TAA C G A 11 T Adlemanの解法 (3/4) 2. 大量のDNAを用いてパスをランダムに生成 ATTGAC AAT C C G 相補性を利用 AAT C C G ATTGAC G G C TAA AAA C C C CTGGGG G G C TAA C AT 12T G A Adlemanの解法 (4/4) 3. 生成されたDNAから解となるパスを抽出 – – – スタートで始まりゴールで終わるパス 頂点数と同じ長さのパス 全ての頂点を含むパス ※ゲル電気泳動などを利用 13 DNA分子の自己組織化 • (線形)構造分子によって生成される言語族 =正則言語族 • (線形+ヘアピン+3分岐)構造分子によって 生成される言語族 =文脈自由言語族 今回はここを説明 • (線形+DX)構造分子によって生成される言 語族 =帰納的可算言語族 ※一次元セルオートマトンを模倣する 14 準備:利用するDNA分子 (1/2) • 線形 • ヘアピン G G C C A A T C A T A G T A T C A T A G T A G G T T T T T 15 準備:利用するDNA分子 (2/2) • 3分岐 C T G A A C G C A T C T G G C G C G T A G C C A G T T C A 16 G 準備: DNA分子の組織化の例 C T T C A T A G T A G G T C + 相補性を利用 = T C A T C C A G C A A G T A G G T C G T G A A C T G C A G C A T CG C G C G T A GC C A G T T C A G C T G A A C T G T CG C G A GC C A G T T C 17 A G 文脈自由文法の文法例 文法G={S→S+S, S→M M→M*M, M→(S), M→x, M→y, M→z} S,M :非終端記号 x,y,z,(,),+.* :終端記号 18 DNAによる生成規則の表現 (1/3) M’ M→x x M’ M→y y M’ :Mの相補配列 M’ M→z z 19 DNAによる生成規則の表現 (2/3) S S S’ S→M M M’ ( M→(S) ) M 20 DNAによる生成規則の表現 (3/3) S→S+S M→M*M M S M’ S’ * + S M 21 (x+y)*zの導出例 (1/2) S→M S S→M →M*M →M*z S’ M M→M*M M’ * S M M’ M M→z 22 z (x+y)*zの導出例 M→x (2/2) S→M →M*M → M*z → (S)*z →(S+S)*z →(S+M)*z →(S+y)*z →(M+y)*z →(x+y)*z S→M S S + S→S+S S’ M→(S) ( S M’ ) S S→M M M’ S’ * M→M*M S M M’ M M→z z S→M M→y S’ M’ S M 23 y まとめ • 様々な分子コンピューティングの理論モデル – Adleman-Lipton • データ並列計算による解の抽出 – Winfree-Seeman • DNA分子の自己組織化 萩谷先生自身は •分子メモリ •分子アドレッシング などの研究をしているらしい24 並列計算機におけるキャッシュ を意識した自動メモリ管理機構 松田聡、鎌田十三郎 (神戸大) 25 背景 • 一つのキャッシュラインに複数のオブジェクト がのる Processor objA objB 26 キャッシュミス削減による プログラムの高速化 (1/2) • キャッシュ密度の向上 – 頻繁にアクセスされるオブジェクトを隣接配置 頻繁にobjAとobjBを read Processor Processor objA objB objA objB 隣接配置 27 キャッシュミス削減による プログラムの高速化 (2/2) • 無効化の影響の回避 – 頻繁に更新されるオブジェクトを他のオブジェクト と別ラインに配置 Processor 1 Processor 2 objA objB objA objB 頻繁にobjAをwrite 頻繁にobjBをread Processor 1 objA objB Processor 2 objA objB 28 本研究の概要 • キャッシュを意識した自動メモリ管理機構 – アクセス傾向を考慮したオブジェクト配置 – 深さ優先コピー 今回はこちら ※Javaに実装 (Sun Hotspot VM) を説明 29 アクセス傾向を考慮したオブジェクト 配置 1.オブジェクトのread・writeアクセス傾向から クラスを分類・分割 2.メモリ割り当て・GC時にアクセス傾向の異な るオブジェクトを別々の領域に配置 30 アクセス傾向によるクラスの分類・分割 (1/4) 以下の2つにクラスを分類・分割することを目指す • FreqReadクラス – read多 and write少 • Otherクラス – write多 or (read少 and write少) 31 アクセス傾向によるクラスの分類・分 割(2/4) 1. クラスのインスタンスフィールドに対する read・write数を計測 Field Read 回数 Write 回数 val 78.5M 0.3M int val; left 46.9M 0.5M Node left, right; right 41.6M 0.5M int couter, found; found 1.0M 1.3M Object lock; counter 0.7M 1.0M lock 0.7M 0.3M Class Node { } 32 アクセス傾向によるクラスの分類・分 割(3/4) 2. アクセス傾向をもとにフィールドを分類 – W・R・N変数 Field Read 回数 Write 回数 val 78.5M 0.3M int val; left 46.9M 0.5M Node left, right; right 41.6M 0.5M int couter, found; found 1.0M 1.3M Object lock; counter 0.7M 1.0M lock 0.7M 0.3M Class Node { } R変数 W変数以外で read数が、 全read+write数の 1%以上 W変数 write数が、 全write数の20% 以上 N変数 W変数とR変数以外 33 アクセス傾向によるクラスの分類・分 割(4/4) 3. W・R・N変数をもとにクラスを分割 – R変数のみを含むクラス ⇒FreqReadクラス – W・N変数を含むクラス ⇒Otherクラス FreqRead クラス Class Node { Node_Other ref; Class Node { int val; int val; Node left, right; Node left, right;} int couter, found; Object lock; } 分割 Class Node_Other { Other クラス int couter, found; Object lock; } 34 アクセス傾向別領域の導入 (1/2) • 世代別GC – 新世代:Coping GC – 旧世代:Mark-compact GC • 下図のようなヒープ構造 新世代 (インスタンス用) 旧世代 (インスタンス用) Old New From 旧世代 (クラスオブジェクト用) Perm To 35 アクセス傾向別領域の導入 (2/2) • FRC (Freq Read Chunk) – FreqReadオブジェクト用の領域 – 各スレッドごとに存在 • 各スレッドが非同期に割り当て可能 New FRC Other FRC FRC Other 36 性能評価 (1/2) • SunEnterPrise6500上で – カウンタ付き2分木 – Nbody – MolDyn を実行 37 性能評価 (2/2) • 全体的な傾向 – オブジェクトサイズがキャッシュラインサイズより 大きい時は効果小 • クラス分割 – 書き込みが多いオブジェクトに対して効果大 – MolDynで最大30%の速度向上 38 まとめと今後の課題 • キャッシュを意識した自動メモリ管理機構 – オブジェクトのread・writeアクセス傾向から クラスを分類・分割 – メモリ割り当て・GC時にアクセス傾向の異なる オブジェクトを別々の領域に配置 今後の課題 • 多種類のプログラムに対する有効性の検討 • クラスの分類・分割の自動化 39 組込みシステムの開発の 現状と課題 (チュートリアル) 高田広章 (名大) 40 組込みシステムとは • 各種の機器に組み込まれ制御を行う コンピュータシステム – 例)家電機器、娯楽機器 41 組込みシステムの特性 • 専用化されたシステム • 厳しいリソース制約 – 消費電力、温度、重量 • 高い信頼性 – PL法の対象に含まれる • リアルタイム性 42 組込みソフトウェア • 組み込みシステムのソフトウェア – LSIに組み込まれて、その制御を行うソフトウェア • 開発の特性 – ハードウェアに密着したプログラミング – 開発環境とターゲット環境の分離 • クロス開発環境、リモートデバグ – ハードウェアとの協調設計、並行開発 – 多様なプラットフォーム – など 43 組込みシステム開発の現状 (1/5) 44 組込みシステム開発の現状 (2/5) 45 組込みシステム開発の現状 (3/5) 46 組込みシステム開発の現状 (4/5) 47 組込みシステム開発の現状 (5/5) 48 TRONの現状 μITRON/PX • メモリ保護を導入 – アドレス変換なし • 論理アドレス=物理アドレス – 静的な情報を用いた最適化 • メモリ配置などを静的に決定 49 まとめ • 組込みシステムの開発の現状と課題 50 SpecCにおけるソフトウェア記述 の実装記述への変換 本田晋也、高田広章、中島浩 (豊橋技科大) 51 背景 • 組込みシステムの設計 – ソフトウェア部分とハードウェア部分が混在 – 両者の分割方法を後で変更するのが困難 52 SpecC • システムレベル記述言語 – ソフトウェア部分とハードウェア部分を統一的に 記述する – 後で分割部分を指定し、性能を見積もる • ソフトウェア部分はCへ変換される • ハードウェア部分はHDLへ変換される 53 本研究の概要 • SpecCのソフトウェア部分の変換 – μITRON上で動作するC言語記述への変換 54 A:a0 SpecCの言語仕様 (1/3) C:c0 B:b0 Behavior A { Channel C { C c0; … B b0(c0), b1(c0); void write(…) {…} void main(void) { B:b1 void read(…) {…} }; par{b0.main(); b1.main(); } } }; Behaivor B (C c0) { … void main() { … } }; ビヘイビア システムの機能要素 メンバ変数・メソッド・ポートから 55 なる A:a0 SpecCの言語仕様 (2/3) C:c0 B:b0 Behavior A { Channel C { C c0; … B b0(c0), b1(c0); void write(…) {…} void main(void) { par{b0.main(); b1.main(); } } }; Behaivor B (C c0) { … void main() { … } }; B:b1 void read(…) {…} }; ポート ソフトウェア的にはC++の参照 引数 ハードウェア的にはモジュール 56 間の配線 A:a0 SpecCの言語仕様 (3/3) C:c0 B:b0 Behavior A { Channel C { C c0; … B b0(c0), b1(c0); void write(…) {…} void main(void) { B:b1 void read(…) {…} }; par{b0.main(); b1.main(); } } }; Behaivor B (C c0) { … void main() { … } }; チャネル 同期通信を表す 同一のチャネルインスタンス内 のメソッドは排他的に実行 57 SpecCからCへの変換 • μITRONの仕様にあわせて色々と工夫 例)並列実行されるビヘイビア→ITRONのタスク 58 性能評価 • 実験内容 – JPEGデコーダによる性能比較 • SpecCからCへ変換されたものと、 直にCで記述したものとを比較 • 実験結果 – 変換により13~25%低速 59 まとめと今後の課題 • SpecCのソフトウェア部分の変換 – μITRON上で動作するC言語記述への変換 今後の課題 • ソフトウェアとハードウェアの境界に位置する チャネルの変換 60 仮想ネットワークアーキテクチャに よるネットワークワイドな保護機構 廣津登志夫、福田健介、光来健一、 明石修、佐藤孝治、菅原俊治 (NTT未来ねっと研) 61 背景 • ネットワークをまたがる資源のアクセス管理 – 現在はアプリケーションの努力により実現 例)IPアドレスに基づくアクセス権の設定 ⇒cross-site scriptingのような脆弱性を生む ⇒OSによる支援が望ましい 62 本研究の概要 • VNAP (Virtual Network Architecture for Protection) – ポリシーに応じて仮想ネットワークを構築 – 仮想ネットワーク毎にOSの内部処理を切替 研究室A 研究室B インター ネット 63 VNET (Virtual Network) • ポリシーごとに存在 例)研究室内でひとつのVNET 研究室外でもうひとつのVNET • 実際には、スイッチのVLANの設定などに よって構築される 64 RS (Resource Space) • 仮想化されたOSの内部処理群 – 一つのVNETに一つのRS 例)信頼できるVNET用の,普通の内部処理群 例)信頼できないVNET用の,制限された内部処理群 • RSIDという識別子を持つ 65 RSによるアクセス管理 • 各プロセスは,いずれかのRSに所属 – set_rsid() プロセス0 (RSID=0) プロセス1 (RSID=1) System call RS0 open UDP exec TCP VNET0 パケット via VNET0 RS1 open UDP exec TCP VNET1 Packet Classifier パケット via VNET166 まとめと今後の課題 • VNAP – 仮想的なネットワークVNETの提供 – RSによるアクセス管理 今後の課題 • ネットワーク以外の資源の仮想化 67 発表全体のまとめ • SACSIS’03レポート – 並列計算、組込み、OSなど様々な分野の研究 68 時間が余ったら 69 マルチホーム方式を用いた マルチクラスタ向け ソフトウェア分散共有メモリ 城田祐介、吉川克哉、 本多弘樹、弓場敏嗣 (電通大) 70 背景 • マルチクラスタ – 低レンテンシネットワークで結合されたクラスタ 例)クラスタ内:1Gbps クラスタ間:100Mbps 71 本研究の概要 • マルチクラスタ向けソフトウェア分散共有メモリ – ホームノードを多重化することにより • クラスタ間通信の削減 • ページ読み出し時のレイテンシの削減 を実現する 72 Home-based分散共有メモリ • ページの一貫性を管理するホームが存在 ホーム ノード0 ノード1 writeback ノード2 ノード3 x=a; release; acquire; クラスタ 間通信 read read b=x; c=x; クラスタA クラスタB 73 ホームノードの多重化 • 書込み時,全てのホームノードに対してwrite-back • 読込み時,自分の属するクラスタ内のホームからread ホーム ホーム ノード0 ノード1 writeback x=a; release; ノード2 ノード3 writeback aquire; クラスタ 内通信 b=x; read クラスタA クラスタB c=x; 74 性能評価 • 実験内容 – 8CPUクラスタx2上でMM, LU, ISを実行 • 実験結果 – 最大38.5%の性能向上 – LUでは著しく性能低下 • 余分なwrite-backメッセージによるオーバヘッド 75 まとめと今後の課題 • マルチクラスタ向けソフトウェア分散共有メモリ – ホームノードを多重化 今後の課題 • ホームノードの動的再配置 76 高信頼性OS向けカーネル拡張モジュー ル機能を用いたOSデバッグの実現 (short paper) 中村哲人、畑崎恵介、芹沢一 (日立) 77 本研究の概要 • システムを停止することなくカーネルをデバッ グしたい – 仕事でそれなりに必要となるらしい ⇒LKST (Linux Kernel State Tracer) – カーネルの各種イベント処理部分にフックを挿入 例)システムコール呼び出し時 – フック関数はカーネル拡張モジュール機能により 置換可能 78 デバッグの実例1 • 現象 – /dev/zeroから通常のファイルへデータ転送 – 転送サイズの増加とともにシステムの負荷が 急上昇 • 解析方法 1. フックを通過した回数をカウント 2. ディスク入出力割込みの多発を確認 3. デバイスドライバ周辺のバグを発見 79 デバッグの実例2 • 現象 – ページフォルトハンドラに評価コードを追加した カーネルがハングアップ • 解析方法 1. ハングアップ直前におけるページフォルトの多 発を確認 2. ページフォルト処理内でのページフォルト発生 を確認 ※pdeのコピーのためのページフォルトが原因 80 まとめと今後の課題 • LKST – カーネルの各種イベント処理部分にフックを挿入 – フック関数はカーネル拡張モジュール機能により 置換可能 今後の課題 • 定量的評価を行う 81 バイトコードレベルの 高い並列性をもつQJavaの提案 (short paper) 繁田聡一、王立強、 Ben A. Abderazek、吉永努、曽和将容 (電通大) 82 本研究の概要 • Javaのスタック計算モデル – 隣接命令間でデータ依存関係が発生しやすい – バイトコードレベルの並列実行に適さない ⇒QJava – Javaの計算モデルを並列キュー計算モデルに置換 83 キュー計算モデル (1/2) • 計算結果の格納場所がFIFOキュー • 構文木を幅優先探索して命令列を生成 load a 例)(a+b)/(c-d) / Level 2 load b load c + - Level 1 Level 0 load d add a b c d Level 0 sub div Level 1 Level 84 2 キュー計算モデル (2/2) 例)(a+b)/(c-d) load a a load b a b load c Level 0 a b c load d a b c d add c d a+b sub div Level 1 Level 2 a+b c-d (a+b)/(c-d) 85 並列キュー計算モデル • 各レベルを並列に実行 例)(a+b)/(c-d) load a load b load c Level 0 a b c d load d add sub div Level 1 Level 2 a+b C-d (a+b)/(c-d) 86 まとめと今後の課題 • QJava – バイトコードレベルの高い並列製 今後の課題 • Qjava用のVM,JITの作成 87
© Copyright 2024 ExpyDoc