sacsis’03 レポート

87
1 SACSIS’03 レレレレ レレレレ

Upload: hanzila

Post on 14-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

SACSIS’03 レポート. 金田憲二. SACSIS. S ymposium on A dvanced C omputing S ystems and I nfrastructure s 先進的計算システム 例)グリッド技術、ディペンダブルコンピューティング 先進的計算システムを支える基盤技術 例)ネットワークセキュリティ、プログラム言語処理系 実用的基盤システム 例)検索エンジン. SACSIS プログラム (1/2). 基調講演 分子コンピューティング 萩谷昌已(科技団 / 東大) ユビキタスコンピューティング - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SACSIS’03 レポート

1

SACSIS’03 レポート

金田憲二

Page 2: SACSIS’03 レポート

2

SACSIS

• Symposium on Advanced Computing Systems and Infrastructures– 先進的計算システム

例)グリッド技術、ディペンダブルコンピューティング

– 先進的計算システムを支える基盤技術例)ネットワークセキュリティ、プログラム言語処理

系– 実用的基盤システム

例)検索エンジン

0

20

40

60

80

100

120

94 95 96 97 98 99 00 01 02 03年度

投稿

Page 3: SACSIS’03 レポート

3

SACSIS プログラム (1/2)

• 基調講演– 分子コンピューティング

• 萩谷昌已(科技団 / 東大)– ユビキタスコンピューティング

• Tim Kindberg@HP Lab.

• チュートリアル– 組込みシステムの開発の現状と課題

• 高田広章(名大)– XML と Web サービスにおけるセキュリティ

• 丸山宏(日本 IBM )

Page 4: SACSIS’03 レポート

4

SACSIS プログラム (2/2)

• 数値計算• キャッシュ・アーキテクチャ• プロセッサ・アーキテクチャ• グリッド• クラスタ・コンピューティン

グ• システムとツール• アプリケーション• ネットワーク• プログラム言語システム

• データ管理• データ処理• ネットワーク・セキュリ

ティと OS カーネル• 設計技術と再利用

Page 5: SACSIS’03 レポート

5

発表の構成• 分子コンピューティング

– 萩谷昌已(科技団 CREST/ 東大)• 並列計算機におけるキャッシュを意識した自動メモリ管理

機構– 松田聡、鎌田十三郎(神戸大)

• 組込みシステムの開発の現状と課題– 高田広章(名大)

• SpecC におけるソフトウェア記述の実装記述への変換– 本田晋也、高田広章、中島浩(豊橋技科大)

• 仮想ネットワークアーキテクチャによる         ネットワークワイドな保護機構– 廣津登志夫、福田健介、光来健一、明石修、佐藤孝治、

    菅原俊治( NTT 未来ねっと研)

Page 6: SACSIS’03 レポート

6

分子コンピューティング ( 基調講演 )

萩谷昌已(科技団 CREST/ 東大)

Page 7: SACSIS’03 レポート

7

分子コンピューティングとは• 分子を用いて人間の意図した情報処理を

行うこと例) DNA を用いたデータ処理

Page 8: SACSIS’03 レポート

8

分子コンピューティングの理論モデル

• Adleman-Lipton (1994)– データ並列計算による解の抽出※ 有向ハミルトンパス問題

• Winfree-Seeman (1996)– DNA 分子の自己組織化

• など

Page 9: SACSIS’03 レポート

9

有向ハミルトンパス問題– 指定されたスタートとゴールをもつ有向グラ

フ G が任意に与えられるとき、 G がハミルトンパスをもつか否かを決定する問題

• NP 完全

※ ハミルトンパス:全ての頂点をちょうど一度だけ含むパス

0 6

3 1

4

2 5スタート

ゴール

Page 10: SACSIS’03 レポート

10

Adleman の解法 (1/4)

概要1. 入力グラフ G を DNA で符号化2. 大量の DNA によりパスをランダムに生成3. 生成された DNA から解となるパスを抽出

– スタートで始まりゴールで終わるパス– 頂点数と同じ長さのパス– 全ての頂点を含むパス

Page 11: SACSIS’03 レポート

11

Adleman の解法 (2/4)

1. 入力グラフ G を DNA で符号化– ノード: DNA配列– エッジ:始点・終点を半分づつ連結したも

のの 相補配列

A A T C C G A T T G A C

G G C T A A

ノード0

ノード1

ノード 0 からノード 1 へのエッ

相補性

G

C

T

A

Page 12: SACSIS’03 レポート

12

T T T G G C

Adleman の解法 (3/4)

2. 大量の DNA を用いてパスをランダムに生成

A A T C C G

G G C T A A

A A T C C GA T T G A C

A T T G A C A A A C C C

A A A C C C

G G C T A A

C T G G G C

G G C T A A

A A T C C G A T T G A C

C T G G G G

A A A C C C

T T T G G C

G G C T A A

A T T G A C

相補性を利用

A A A C C C

Page 13: SACSIS’03 レポート

13

Adleman の解法 (4/4)

3. 生成された DNA から解となるパスを抽出– スタートで始まりゴールで終わるパス– 頂点数と同じ長さのパス– 全ての頂点を含むパス

※ゲル電気泳動などを利用

Page 14: SACSIS’03 レポート

14

DNA 分子の自己組織化• (線形)構造分子によって生成される言語族=正則言語族

• (線形+ヘアピン+3分岐)構造分子によって生成される言語族=文脈自由言語族

• (線形+ DX )構造分子によって生成される言語族=帰納的可算言語族※ 一次元セルオートマトンを模倣する

今回はここを説明

Page 15: SACSIS’03 レポート

15

準備:利用する DNA 分子 (1/2)

• 線形

• ヘアピン

G C A T C A T

A G T A G G T

G C A T C A T

A G T A

T

T

TT

Page 16: SACSIS’03 レポート

16

準備:利用する DNA 分子 (2/2)

• 3分岐

G C A T C

G T A GC

G

C

A

T

C

G

T

A

G

CG

C

A

T

C

G

T

A

G

C

Page 17: SACSIS’03 レポート

17

準備: DNA 分子の組織化の例

T C A T

A G T A G G T

G C A T C

G T A GC

GC

AT

C

GT

AG

CG

CA

TC

GT

AG

C

C C A

相補性を利用

G C A T C

G T A GC

GC

AT

C

GT

AG

CG

CA

TC

GT

AG

C

C C AT C A T

A G T A G G T

+

=

Page 18: SACSIS’03 レポート

18

文脈自由文法の文法例文法 G={S→S+S,

S→M

   M→M*M,

      M→(S),

       M→x,

       M→y,

       M→z}

S,M :非終端記号x,y,z,(,),+.* :終端記号

Page 19: SACSIS’03 レポート

19

DNA による生成規則の表現 (1/3)

x

M’

M→x

y

M’

M→y

z

M’

M→z

M’ :M の相補配列

Page 20: SACSIS’03 レポート

20

DNA による生成規則の表現 (2/3)

SS

S→M

M

S’

M→(S)

M

M’ (

)

Page 21: SACSIS’03 レポート

21

DNA による生成規則の表現 (3/3)

S→S+S

S’

S

S

+

M→M*M

M’

M

M

*

Page 22: SACSIS’03 レポート

22

(x+y)*z の導出例 (1/2)

S→M

M

S’

M→M*MM’

M

M

*

z

M’

M→z

S

S

S→M→M*M

→M*z

Page 23: SACSIS’03 レポート

23

(x+y)*z の導出例 (2/2)

S→M →M*M → M*z

S

S

S→M

M

S’M→M*M

M’ M

M

*

z

M’

M→z

M→(S)S

M’(

)

S→S+S

S’

S

S

+S→M

M

S’y

M’M→y

x

M’

M→x

S→MS

N’

→ (S)*z→(S+S)*z

→(S+M)*z

→(S+y)*z

→(M+y)*z

→(x+y)*z

Page 24: SACSIS’03 レポート

24

まとめ• 様々な分子コンピューティングの理論モデル

– Adleman-Lipton• データ並列計算による解の抽出

– Winfree-Seeman• DNA 分子の自己組織化

萩谷先生自身は•分子メモリ•分子アドレッシング

などの研究をしているらしい

Page 25: SACSIS’03 レポート

25

並列計算機におけるキャッシュを意識した自動メモリ管理

機構松田聡、鎌田十三郎

(神戸大)

Page 26: SACSIS’03 レポート

26

背景• 一つのキャッシュラインに複数のオブジ

ェクトがのる

Processor

objA objB

Page 27: SACSIS’03 レポート

27

キャッシュミス削減によるプログラムの高速化 (1/2)

• キャッシュ密度の向上–頻繁にアクセスされるオブジェクトを隣接配置

Processor

objAobjB

頻繁に objA と objBを read

Processor

objA objB

頻繁に objA と objBを read

隣接配置

Page 28: SACSIS’03 レポート

28

キャッシュミス削減によるプログラムの高速化 (2/2)

• 無効化の影響の回避–頻繁に更新されるオブジェクトを他のオブジ

ェクトと別ラインに配置

Processor 1

objA objB

頻繁に objA を write

Processor 2

objA objB

頻繁に objB を read

Processor 1

objA

Processor 2

objAobjBobjB

Page 29: SACSIS’03 レポート

29

本研究の概要• キャッシュを意識した自動メモリ管理機

構– アクセス傾向を考慮したオブジェクト配置–深さ優先コピー※Java に実装 (Sun Hotspot VM)

今回はこちらを説明

Page 30: SACSIS’03 レポート

30

アクセス傾向を考慮したオブジェクト配置

1.オブジェクトの read ・ write アクセス傾向から クラスを分類・分割

2.メモリ割り当て・ GC時にアクセス傾向の異なるオブジェクトを別々の領域に配置

Page 31: SACSIS’03 レポート

31

アクセス傾向によるクラスの分類・分割 (1/4)

以下の 2 つにクラスを分類・分割することを目指す

• FreqRead クラス– read多 and write少

• Other クラス– write多 or (read少 and write少 )

Page 32: SACSIS’03 レポート

32

アクセス傾向によるクラスの分類・分割 (2/4)

1. クラスのインスタンスフィールドに対する       read ・ write 数を計測

Class Node {

int val;

Node left, right;

int couter, found;

Object lock;

}

Field Read回数

Write回数

val 78.5M 0.3M

left 46.9M 0.5M

right 41.6M 0.5M

found 1.0M 1.3M

counter 0.7M 1.0M

lock 0.7M 0.3M

Page 33: SACSIS’03 レポート

33

アクセス傾向によるクラスの分類・分割 (3/4)

2. アクセス傾向をもとにフィールドを分類– W ・ R ・ N 変数

Class Node {

int val;

Node left, right;

int couter, found;

Object lock;

}

Field Read回数

Write回数

val 78.5M 0.3M

left 46.9M 0.5M

right 41.6M 0.5M

found 1.0M 1.3M

counter 0.7M 1.0M

lock 0.7M 0.3M

write 数が、全 write 数の

20%以上

W 変数以外でread 数が、

全 read+write 数の 1% 以上

W 変数と R 変数以外

N 変数

R 変数

W 変数

Page 34: SACSIS’03 レポート

34

アクセス傾向によるクラスの分類・分割 (4/4)

3. W ・ R ・ N 変数をもとにクラスを分割– R 変数のみを含むクラス ⇒ FreqRead クラス– W ・ N 変数を含むクラス ⇒ Other クラス

Class Node {

int val;

Node left, right;

int couter, found;

Object lock;

}

分割

Class Node {

Node_Other ref;

int val;

Node left, right;}

Class Node_Other {

int couter, found;

Object lock;   }

FreqReadクラス

Otherクラス

Page 35: SACSIS’03 レポート

35

アクセス傾向別領域の導入 (1/2)

• 世代別 GC–新世代: Coping GC–旧世代: Mark-compact GC

• 下図のようなヒープ構造

New Old Perm

From To

旧世代(クラスオブジェク

ト用)

新世代(インスタンス

用)

旧世代(インスタンス

用)

Page 36: SACSIS’03 レポート

36

アクセス傾向別領域の導入 (2/2)

• FRC (Freq Read Chunk)– FreqReadオブジェクト用の領域–各スレッドごとに存在

• 各スレッドが非同期に割り当て可能

New

FRC Other FRC FRC Other

Page 37: SACSIS’03 レポート

37

性能評価 (1/2)

• SunEnterPrise6500上で– カウンタ付き 2 分木– Nbody– MolDyn

を実行

Page 38: SACSIS’03 レポート

38

性能評価 (2/2)

• 全体的な傾向–オブジェクトサイズがキャッシュラインサイズより大きい時は効果小

• クラス分割–書き込みが多いオブジェクトに対して効果大– MolDyn で最大 30% の速度向上

Page 39: SACSIS’03 レポート

39

まとめと今後の課題• キャッシュを意識した自動メモリ管理機構

–オブジェクトの read ・ write アクセス傾向から    クラスを分類・分割

– メモリ割り当て・ GC時にアクセス傾向の異なる  オブジェクトを別々の領域に配置

• 多種類のプログラムに対する有効性の検討• クラスの分類・分割の自動化

今後の課題

Page 40: SACSIS’03 レポート

40

組込みシステムの開発の現状と課題

( チュートリアル )高田広章(名大)

Page 41: SACSIS’03 レポート

41

組込みシステムとは• 各種の機器に組み込まれ制御を行う

コンピュータシステム– 例)家電機器、娯楽機器

Page 42: SACSIS’03 レポート

42

組込みシステムの特性• 専用化されたシステム• 厳しいリソース制約

–消費電力、温度、重量• 高い信頼性

– PL 法の対象に含まれる• リアルタイム性

Page 43: SACSIS’03 レポート

43

組込みソフトウェア• 組み込みシステムのソフトウェア

– LSI に組み込まれて、その制御を行うソフトウェア

• 開発の特性– ハードウェアに密着したプログラミング– 開発環境とターゲット環境の分離

• クロス開発環境、リモートデバグ– ハードウェアとの協調設計、並行開発–多様なプラットフォーム– など

Page 44: SACSIS’03 レポート

44

組込みシステム開発の現状 (1/5)

Page 45: SACSIS’03 レポート

45

組込みシステム開発の現状 (2/5)

Page 46: SACSIS’03 レポート

46

組込みシステム開発の現状 (3/5)

Page 47: SACSIS’03 レポート

47

組込みシステム開発の現状 (4/5)

Page 48: SACSIS’03 レポート

48

組込みシステム開発の現状 (5/5)

Page 49: SACSIS’03 レポート

49

TRON の現状μITRON/PX

• メモリ保護を導入– アドレス変換なし

• 論理アドレス=物理アドレス

– 静的な情報を用いた最適化• メモリ配置などを静的に決定

Page 50: SACSIS’03 レポート

50

まとめ• 組込みシステムの開発の現状と課題

Page 51: SACSIS’03 レポート

51

SpecC におけるソフトウェア記述の実装記述への変換

本田晋也、高田広章、中島浩(豊橋技科大)

Page 52: SACSIS’03 レポート

52

背景• 組込みシステムの設計

– ソフトウェア部分とハードウェア部分が混在–両者の分割方法を後で変更するのが困難

Page 53: SACSIS’03 レポート

53

SpecC

• システムレベル記述言語– ソフトウェア部分とハードウェア部分を統一

的に記述する–後で分割部分を指定し、性能を見積もる

• ソフトウェア部分は C へ変換される• ハードウェア部分は HDL へ変換される

Page 54: SACSIS’03 レポート

54

本研究の概要• SpecC のソフトウェア部分の変換

– μITRON 上で動作する C 言語記述への変換

Page 55: SACSIS’03 レポート

55

SpecC の言語仕様 (1/3)

Behavior A {

C c0;

B b0(c0), b1(c0);

void main(void) {

par{b0.main();

b1.main(); } } };

システムの機能要素メンバ変数・メソッド・ポートからなる

A:a0

B:b0

C:c0

B:b1

Channel C {

void write(…) {…}

void read(…) {…} };

Behaivor B (C c0) {

void main() { … } };

システムの機能要素メンバ変数・メソッド・ポートからなる

ビヘイビア

Page 56: SACSIS’03 レポート

56

SpecC の言語仕様 (2/3)

Behavior A {

C c0;

B b0(c0), b1(c0);

void main(void) {

par{b0.main();

b1.main(); } } };

Channel C {

void write(…) {…}

void read(…) {…} };

Behaivor B (C c0) {

void main() { … } };

ソフトウェア的には C++ の参照引数ハードウェア的にはモジュール間の配線

ポート

A:a0

B:b0

C:c0

B:b1

Page 57: SACSIS’03 レポート

57

SpecC の言語仕様 (3/3)

Behavior A {

C c0;

B b0(c0), b1(c0);

void main(void) {

par{b0.main();

b1.main(); } } };

Channel C {

void write(…) {…}

void read(…) {…} };

Behaivor B (C c0) {

void main() { … } };

同期通信を表す同一のチャネルインスタンス内 のメソッドは排他的に実行

チャネル

A:a0

B:b0

C:c0

B:b1

Page 58: SACSIS’03 レポート

58

SpecC から C への変換• μITRON の仕様にあわせて色々と工夫

例)並列実行されるビヘイビア→ ITRON のタスク

Page 59: SACSIS’03 レポート

59

性能評価• 実験内容

– JPEG デコーダによる性能比較• SpecC から C へ変換されたものと、 直に C で記述したものとを比較

• 実験結果– 変換により 13~25%低速

Page 60: SACSIS’03 レポート

60

まとめと今後の課題• SpecC のソフトウェア部分の変換

– μITRON 上で動作する C 言語記述への変換

• ソフトウェアとハードウェアの境界に位置する  チャネルの変換

今後の課題

Page 61: SACSIS’03 レポート

61

仮想ネットワークアーキテクチャによるネットワークワイドな

保護機構廣津登志夫、福田健介、光来健一、

明石修、佐藤孝治、菅原俊治( NTT 未来ねっと研)

Page 62: SACSIS’03 レポート

62

背景• ネットワークをまたがる資源のアクセス

管理– 現在はアプリケーションの努力により実現例) IP アドレスに基づくアクセス権の設定

⇒cross-site scripting のような脆弱性を生む⇒OS による支援が望ましい

Page 63: SACSIS’03 レポート

63

本研究の概要• VNAP (Virtual Network Architecture for

       Protection)– ポリシーに応じて仮想ネットワークを構築– 仮想ネットワーク毎に OS の内部処理を切替

研究室A

研究室B

インターネット

Page 64: SACSIS’03 レポート

64

VNET (Virtual Network)

• ポリシーごとに存在例)研究室内でひとつの VNET

 研究室外でもうひとつの VNET

• 実際には、スイッチの VLAN の設定などによって構築される

Page 65: SACSIS’03 レポート

65

RS (Resource Space)

• 仮想化された OS の内部処理群– 一つの VNET に一つの RS

例)信頼できる VNET 用の,普通の内部処理群例)信頼できない VNET 用の,制限された内部処

理群• RSID という識別子を持つ

Page 66: SACSIS’03 レポート

66

RS によるアクセス管理• 各プロセスは,いずれかの RS に所属

– set_rsid()

プロセス 0 (RSID=0)

System call

Packet Classifier

プロセス 1 (RSID=1)

RS0

VNET0

open

exec TCP

UDPRS1

VNET1

UDP

TCPexec

open

パケットvia VNET0

パケットvia VNET1

Page 67: SACSIS’03 レポート

67

まとめと今後の課題• VNAP

– 仮想的なネットワーク VNET の提供– RS によるアクセス管理

• ネットワーク以外の資源の仮想化今後の課題

Page 68: SACSIS’03 レポート

68

発表全体のまとめ• SACSIS’03 レポート

– 並列計算、組込み、 OS など様々な分野の研究

Page 69: SACSIS’03 レポート

69

時間が余ったら

Page 70: SACSIS’03 レポート

70

マルチホーム方式を用いたマルチクラスタ向け

ソフトウェア分散共有メモリ城田祐介、吉川克哉、

本多弘樹、弓場敏嗣(電通大)

Page 71: SACSIS’03 レポート

71

背景• マルチクラスタ

–低レンテンシネットワークで結合されたクラスタ

例)クラスタ内: 1Gbps

  クラスタ間: 100Mbps

Page 72: SACSIS’03 レポート

72

本研究の概要• マルチクラスタ向けソフトウェア分散共有

メモリ–ホームノードを多重化することにより

• クラスタ間通信の削減• ページ読み出し時のレイテンシの削減

を実現する

Page 73: SACSIS’03 レポート

73

Home-based 分散共有メモリ• ページの一貫性を管理するホームが存在

ノード 0

ノード 1

ノード 2

ノード 3

write-back

x=a;

release;

acquire;

b=x;

c=x;

readread

read

ホーム

クラスタ A クラスタ B

クラスタ間通信

Page 74: SACSIS’03 レポート

74

ホームノードの多重化• 書込み時,全てのホームノードに対して write-back• 読込み時,自分の属するクラスタ内のホームから read

ノード 0

ノード 1

ノード 2

ノード 3

write-back

x=a;

release;

aquire;

b=x;

c=x;read

ホーム

クラスタ A クラスタ B

ホーム

write-back

クラスタ内通信

Page 75: SACSIS’03 レポート

75

性能評価• 実験内容

– 8CPU クラスタ x2上で MM, LU, IS を実行• 実験結果

–最大 38.5% の性能向上– LU では著しく性能低下

• 余分な write-back メッセージによるオーバヘッド

Page 76: SACSIS’03 レポート

76

まとめと今後の課題• マルチクラスタ向けソフトウェア分散共有

メモリ–ホームノードを多重化

• ホームノードの動的再配置今後の課題

Page 77: SACSIS’03 レポート

77

高信頼性 OS 向けカーネル拡張モジュール機能を用いた OS デバッグの実現

(short paper)中村哲人、畑崎恵介、芹沢一

(日立)

Page 78: SACSIS’03 レポート

78

本研究の概要• システムを停止することなくカーネルを

デバッグしたい–仕事でそれなりに必要となるらしい

⇒LKST (Linux Kernel State Tracer)– カーネルの各種イベント処理部分にフックを挿入

例)システムコール呼び出し時– フック関数はカーネル拡張モジュール機能に

より置換可能

Page 79: SACSIS’03 レポート

79

デバッグの実例 1

• 現象– /dev/zero から通常のファイルへデータ転送– 転送サイズの増加とともにシステムの負荷

が  急上昇• 解析方法

1. フックを通過した回数をカウント2. ディスク入出力割込みの多発を確認3. デバイスドライバ周辺のバグを発見

Page 80: SACSIS’03 レポート

80

デバッグの実例 2

• 現象– ページフォルトハンドラに評価コードを追

加したカーネルがハングアップ• 解析方法

1. ハングアップ直前におけるページフォルトの多発を確認

2. ページフォルト処理内でのページフォルト発生を確認※pde のコピーのためのページフォルトが原因

Page 81: SACSIS’03 レポート

81

まとめと今後の課題• LKST

– カーネルの各種イベント処理部分にフックを挿入

– フック関数はカーネル拡張モジュール機能により置換可能

• 定量的評価を行う今後の課題

Page 82: SACSIS’03 レポート

82

バイトコードレベルの高い並列性をもつ QJava の提案

(short paper)繁田聡一、王立強、

Ben A. Abderazek 、吉永努、曽和将容(電通大)

Page 83: SACSIS’03 レポート

83

本研究の概要• Java のスタック計算モデル

– 隣接命令間でデータ依存関係が発生しやすい– バイトコードレベルの並列実行に適さない

⇒QJava– Java の計算モデルを並列キュー計算モデルに置

Page 84: SACSIS’03 レポート

84

キュー計算モデル (1/2)

• 計算結果の格納場所が FIFO キュー• 構文木を幅優先探索して命令列を生成例) (a+b)/(c-d)

/

+ -

a b c d Level 0

Level 1

Level 2

load a

load b

load c

load d

add

sub

div Level 2

Level 1

Level 0

Page 85: SACSIS’03 レポート

85

キュー計算モデル (2/2)

例) (a+b)/(c-d)

load a

load b

load c

load d

add

sub

div Level 2

Level 1

Level 0

a

a b

a b c

a b c d

c d a+b

a+b c-d

(a+b)/(c-d)

Page 86: SACSIS’03 レポート

86

並列キュー計算モデル• 各レベルを並列に実行例) (a+b)/(c-d)load a

load b

load c

load d

add

sub

div Level 2

Level 1

Level 0

a+b C-d

(a+b)/(c-d)

a b c d

Page 87: SACSIS’03 レポート

87

まとめと今後の課題• QJava

– バイトコードレベルの高い並列製

• Qjava 用の VM , JIT の作成今後の課題