C c0 - 米澤研究室

Download Report

Transcript C c0 - 米澤研究室

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