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