annotate Slides/jssst.html @ 24:ac7ac8ef7a01

add bulletin board page.
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Fri, 13 Sep 2013 11:23:23 +0900
parents 426856180cc3
children 8ba4f225dbf0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <!DOCTYPE html>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 <!--
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 Google HTML5 slide template
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 Authors: Luke Mahé (code)
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 Marcin Wichary (code and design)
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 Dominic Mazzoni (browser compatibility)
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 Charles Chen (ChromeVox support)
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 URL: http://code.google.com/p/html5slides/
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 -->
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <html>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <head>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 <title>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 Haskellによる非破壊的木構造を用いたCMSの実装
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 </title>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 <meta charset='utf-8'>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <script
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 src='http://web.amothic.com/html5slides/slides.js'></script>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 </head>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <style>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 /* Your individual styles here, or just use inline styles if that’s
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 what you want. */
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 </style>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <body style='display: none'>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 <section class='slides layout-regular template-concurrency'>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 <!-- Your slides (<article>s) go here. Delete or comment out the
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 slides below. -->
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 <article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 <h1>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 Haskellによる非破壊的木構造を用いたCMSの実装
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 </h1>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
45 Daichi TOMA <br>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
46 Sep 13, 2013
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 </p>
22
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
48
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
49 <!--
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
50
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
51 スライドの構成が、だらだら書いただけになっている。物語になってない。読む人のことを考えてない。
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
52 書いただけ。
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
53
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
54 何を一番伝えたいのか。この研究の成果は何か。目標は何で、何を得たのか。
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
55
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
56 悪いことを強調しない。成果を強調する。発表を聞いた人が「すごい成果だ」と幸せになれるように描く。
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
57
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
58 Jungle のイメージを説明するスライドがない
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
59
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
60 Jungle とは何か?
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
61 Web appli の中で、Jungle をどう使うのか
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
62   どういうアプリに向いているのか
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
63
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
64 Jungle とは何か?
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
65
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
66 改変履歴で接続された木の集合
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
67 木にはroot node にのみ名前があり、最新版にアクセスすることができる
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
68 木のノードには、属性と属性の組があり、順序を持つ子ノードを持つ
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
69 木の改変は、ノードの属性と属性値、子ノードの操作である
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
70 改変は root node と改変するnode へのpathによって行われる
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
71 改変すると新しい木が作られる
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
72 最新版は、サーバ毎に異なる可能性がある
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
73     木へのアクセスは並行して行われ、競合したアクセスは merge により解決される
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
74
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
75
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
76 それを書いてから、
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
77
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
78 Haskell で実装する利点
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
79
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
80 を説得力をもって書く
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
81
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
82 非破壊データベースは、破壊代入のないプログラミング言語と相性が良い
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
83 関数型言語は並列処理と相性が良い
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
84 並列処理のAPIは、モナドとして提供されている
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
85 型推論があるので Java よりも簡潔に記述できる
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
86 定理証明支援系との相性がよく信頼性の高いシステムソフトウェアができる可能性がある
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
87
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
88 など
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
89
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
90 それから、Haskell 上のJungle の API を列挙する
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
91
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
92 そして、実験の流れを記述する
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
93
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
94 遅延評価の影響の除去
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
95 Java 版との Signle server での比較
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
96
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
97
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
98 遅延評価の影響を除去すると、Java と同程度の性能が出るという「成果」であることを強調する
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
99
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
100 並列実行に関しては将来の課題だが、現状では2倍程度の性能しか出てない。
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
101
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
102 予想される問題点を列挙する
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
103 それに対する解決策を列挙する
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
104
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
105      やれよ!
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
106 -->
cbb44aa8867b add comment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
107
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
111 <h3>Haskellによるデータベースの実装</h3>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
113 ウェブサービスの利用者の増加の予想は困難である。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
114 ウェブサービスは、負荷が増大した際に容易に拡張できるスケーラビリティがあることが望ましい。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
117 ウェブサービスのスケーラビリティの実現のネックは、データベースである。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
118 本研究室では、スケーラビリティのあるデータベースとして Jungle を開発している。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
119 Jungle には、既に Java による実装があり、分散データベース Cassandra 以上の性能が確認できるなどの成果がでている。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
120 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
121 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
122 本研究では、Haskell による Jungle の再実装を行った。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 その結果、Java 版と同程度の性能を得ることができた。また、Java 版の実装と比較し、開発期間及びコード行数の短縮ができた。
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
128 <h3>非破壊的木構造データベース Jungle</h3>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
130 Jungle は、非破壊的木構造を取り扱うデータベースである。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
131 非破壊的木構造は、元の木構造を書き換えることなく、編集を行うことが可能である。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 </p>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
133 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
134 <div style="text-align:center">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
135 <img src="images/nondestructive_tree_modification.png">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
136 </div>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
137 </p>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
141 <h3>非破壊的木構造の特徴</h3>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
143 非破壊的木構造は以下の特徴を持つ。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 <ul>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
146 <li>ロックをせずに並列に読み書き可能である
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 <li>一度作成された木構造は破壊されることがない
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 </ul>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
150 ロックを必要とせず、また破壊されることがないため、自由にコピーを作成することができる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
151 コピーを複数作成することで、アクセスを分散させることが可能であり、スケーラビリティが確保できる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
152 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
153 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
154 この非破壊的木構造を取り扱うデータベースが Jungle である。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
159 <h3>非破壊的木構造データベース Jungle</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
160 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
161 Jungle は複数の木を保持することができる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
162 それぞれの木には名前がついており、名前を用いることで最新のルートノードへアクセスすることができる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
163 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
164 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
165 木のノードには、属性と属性値の組がある。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
166 また、順序のある子ノードを持つ。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
167 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
168 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
169 ノードの属性と属性値、子ノードは編集可能である。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
170 編集には、ルートノードと編集するノードへのパスによって行われる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
171 編集すると新しい木が作成される。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
172 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
173 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
174 最新版は、サーバ毎に異なる可能性がある。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
175 木へのアクセスは並行して行われ、競合したアクセスはマージにより解決される
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
176 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
177 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
178 本研究では、Haskell による Jungle の再実装を行った。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
179 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
180 </article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
181
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
182 <article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
183 <h3>Haskell で実装する利点</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
184 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
185 非破壊的木構造は、破壊的な代入のない Haskell と相性がよいと考えられる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
186 Haskell は、破壊的な代入許さず、参照透過性を持つ。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
187 </p>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
189 参照透過性を持つため、ソースコードは明瞭となる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
190 また、どのようなタイミングで評価しても結果は同じとなるため、並行に評価することができる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
191 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
192 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
193 Haskell は定理証明支援系との相性がよく、信頼性の高いシステムソフトウェアができる可能性がある
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
194 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
195 </article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
196
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
197 <article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
198 <h3>コード行数及び開発期間の短縮</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
199 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
200 Haskell では、再帰的なデータ構造を定義することが可能で、木構造がデータ型として定義できる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
201 また、パターンマッチにより、シンプルに場合分けをすることが可能である。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
202 そのため、コード行数を短くすることが可能で、開発期間の短縮にも繋がった。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
203 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
204 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
205 Java 版の Jungle の実装と比較すると、コード行数は約 3000 行から約 150 行へ短くなった。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
206 また開発期間は Java 版の実装で、3 ヶ月程度かかったが、 Haskell 版の実装は 2 週間程度であった。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
207 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
208 </article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
209
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
210 <article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
211 <h3>Haskell 版 Jungle の API</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
212 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
213 Jungle は、様々なシステムに組み込んで使用できる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
214 Haskell 版 Jungle の利用方法について述べる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
215 </article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
216
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
217 <article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
218 <h3>木の作成</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
219 <p>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
220 Jungle は複数の木を保持することができる。
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
221 木には名前がついており、名前を利用して、木構造の取得や削除を行うことができる。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
222 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
223 <pre>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
224 jungle = createJungle
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
225 new_jung = createTree jungle "new_tree"
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
226 </pre>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
227 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
228 createTree 関数を利用して、"new_tree"という名前の木構造を作成するコードである。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
229 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
230 </article>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
231
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
232 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
233 <h3>ルートノードの取得</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
234 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
235 ルートノードを取得するためには以下のように記述する。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
236 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
237 <pre>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
238 tree = getTreeByName new_jung "new_tree"
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
239 node = getRootNode tree
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
240 </pre>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
241 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
242 getTreeByName 関数で名前を指定することで木構造を取得できる。
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
243 getRootNode 関数でルートノードを取得できる。
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
244 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
245 </article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
246
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
247 <article>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
248 <h3>子の追加及び属性の追加</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
249 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
250 addNewChildAt 関数で、ノードに新しい子を追加することができる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
251 また、putAttribute 関数で、ノードに属性を追加できる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
252 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
253 <pre>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
254 new_tree = addNewChildAt tree [0,1] 0
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
255 new_tree2 = putAttribute new_tree [0,1,0] "key" "value"
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
256 </pre>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
257 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
258 どのノードを編集するかという情報は、ルートノードからのパスを渡すことで解決する。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
259 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
260 </article>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
261
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
262 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
263 <h3>パス</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
264 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
265 パスは Haskell のリストとして定義する。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
266 ルートノードからスタートし、ノードの子供の場所を次々に指定していくことで編集対象のノードの場所を表す。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
269 <div style="text-align:center">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
270 <img src="images/nodepath.png">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
271 </div>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 </article>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
274
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
275 <article>
24
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
276 <h3>掲示板システム</h3>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
277 <p>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
278 これらのAPIを利用して、ウェブサービスを構築できる。
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
279 Jungle を用いた CMS として掲示板システムを作成した。
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
280 </p>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
281 <p>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
282 掲示板システムの HTTP サーバには、Warp を用いる。
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
283 Warp は、Haskell で書かれた軽量・高速な HTTP サーバでプログラムに組み込んで利用することが可能である。
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
284 </p>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
285 </article>
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
286
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
287 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
288 <h3>ベンチマーク</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
289 <p>
24
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
290 掲示板システムを利用して、Haskell 版 Jungle と Java 版 Jungle の性能比較を行う。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
291 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
292 <p>
24
ac7ac8ef7a01 add bulletin board page.
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 23
diff changeset
293 Java 版 Jungle には、HTTP サーバ Jetty を用いた掲示板システムの実装があり、それを採用する。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
296 実験方法を以下に示す。
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 </p>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
298 <ul>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 <li>複数のクラスタを利用して、サーバに対して並列にアクセスを5000回行い、それぞれクラスタの実行平均時間をとる
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 <li>クラスタの台数を増やすことにより負荷を上昇させる
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
301 <li>測定するのは書き込みと読み込みであり、 掲示板のメッセージの取得と掲示板のメッセージの編集を行う
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 </ul>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
304
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
305 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
306 <h3>実験環境</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
307 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
308 負荷をかける対象であるサーバは、マルチコア環境が生かされているか確認するためにコア数の多いマシンを用いる
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
309 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
310 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
311 性能評価に使用するサーバ
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
312 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
313 <table>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
314 <tr>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
315 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
316 OS
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
317 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
318 Fedora 16
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
319 <tr>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
320 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
321 CPU
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
322 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
323 Intel Xeon X5650 2.67GHz * 2
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
324 <tr>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
325 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
326 論理コア数
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
327 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
328 24
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
329 <tr>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
330 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
331 物理メモリ
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
332 <td>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
333 132 GB
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
334 </table>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
335 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
336
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
337 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
338 <h3>実験結果</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
339 <div style="float:left;">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
340 <img src="images/read.png", width="350px">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
341 </div>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
342 <div style="float:left;">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
343 <img src="images/write.png", width="350px">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
344 </div>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
345 <br clear="both">
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
346
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
347 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
348 左が読み込み、右が書き込みの実験結果である。
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
349 縦軸は実行時間、横軸はノード数である。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
350 </p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
351 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
352 ノード数が増えると負荷が上昇するため、実行にかかる時間が伸びている。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
353 </p>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
354 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
355 Haskell 版および Java 版の Jungle は、ほぼ同程度の速度が出ていることが分かる。
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
356 </p>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
358
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
359 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
360 <h3>Haskell 版 Jungle の課題</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
361 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
362 Haskell版 Jungle は、Java 版と同程度の速度が出ているが、まだ速度向上の余地がある。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
363 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
364 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
365 並列実行と、メモリ領域効率の改良が可能である。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
366 </p>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
368
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
369 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
370 <h3>並列実行</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
371 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
372 Haskell 版 Jungle では、並列実行に改良の余地がある。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
373 現在、Haskell 版 Jungle はシングルコアで実行している。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
374 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
375
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
376 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
377 並列実行を行った場合、複数のスレッドが立ち上がり、処理を行っていることは確認できた。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
378 しかしながら、シングルコアで実行した場合と比較して実行結果が遅くなる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
379 マルチコアで実行した際の速度向上の達成のために、オーバーヘッドとなっている部分を見直し改善する必要がある。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
380 </p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
381 <div style="text-align:center">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
382 <img src="images/para.png", width="400px">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
383 </div>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
385
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
386 <article>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
387 <h3>メモリ領域の効率</h3>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
388 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
389 Haskell 版 Jungle は、全ての評価を遅延評価で行っている。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
390 書き込みの際、何かしらの結果を表示するまで、簡約可能な式の状態で積まれたままとなる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
391 </p>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
392 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
393 適切な箇所で、即時評価を行うように変更することでメモリ領域の効率を改善できる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
394 </p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
395 <p>
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
396 メモリ領域の効率は、大量に書き込みだけを行った場合に問題となる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
397 大量に書き込みだけを行った場合、簡約可能な式が積まれ続ける。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
398 その際、効率のよい領域に入りきらないサイズになると実行結果が遅くなる。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
399 現在は、推奨されるヒープ領域のサイズを変更している。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
400 </p>
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
401 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
402
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
403 <article class="nobackground">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
404 <h3>メモリ領域の効率</h3>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
405 <p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
406 ヒープ領域のサイズを変更しない場合の実験結果を示す。
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
407 また、読み込みを行った際に、実行速度が改善することを示すために、クラスタ台数を10台増やすごとに一度読み込みを挟む。
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
408 </p>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
409 <div style="text-align:center">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
410 <img src="images/delay.png", width="350px">
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
411 </div>
21
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
412 <p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
413 書き込みを繰り返すと実行時間が悪化し、読み込み後、実行時間が下がる。
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
414 読み込みの際には、数万回以上の書き込みを処理するため数秒から数十秒かかる。
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
415 書き込みの順序は正しく処理されている。
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
416 </p>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
417 </article>
896dc855b808 add images
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
418
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 <article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
420 <h3>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
421 まとめ
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
422 </h3>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
423 <ul>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
424 <li>Haskell による 非破壊的木構造データベース Jungle を実装した
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
425 <li>実装した Haskell 版 Jungle は Java 版 Jungle と同程度の性能を達成できた
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
426 <li>Haskell 版 Jungle は、Java の実装と比較してコード行数および開発期間は短くなった
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
427 </ul>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
428 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
429
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
430 <article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 <h3>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
432 今後の課題
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
433 </h3>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 <ul>
23
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
435 <li>マルチスレッドで実行した際に、速度の向上を計る
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
436 <li>いくつかの式を即時評価するように変更し、メモリ領域の効率改善を行う
426856180cc3 rework this slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
437 <li>分散環境で Jungle を効率よく利用するために、木構造をマージする仕組みの実装を行う
20
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
438 </ul>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
439 </article>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 </body>
fabd690fbaf0 add slides
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
441 </html>