diff paper/slides/sample.html @ 37:254dce6f6501

fix slides
author suruga
date Wed, 21 Feb 2018 17:42:31 +0900
parents dc7cd591b4bc
children 48fbb9e3c335
line wrap: on
line diff
--- a/paper/slides/sample.html	Wed Feb 21 14:10:24 2018 +0900
+++ b/paper/slides/sample.html	Wed Feb 21 17:42:31 2018 +0900
@@ -86,7 +86,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin14]
-                on 2018-02-21 03:09:56 +0900 with Markdown engine kramdown (1.13.2)
+                on 2018-02-21 16:38:54 +0900 with Markdown engine kramdown (1.13.2)
                   using options {}
   -->
 
@@ -104,11 +104,10 @@
 <!-- _S9SLIDE_ -->
 <h1 id="section-1">研究背景(2/2)</h1>
 <ul>
-  <li>Jungleは</li>
+  <li>一般的なウェブサイトの構造は大体が木構造であるため、データ構造と して木構造を採用している</li>
+  <li>JungleはNoSQLで開発されており、木構造をそのまま読み込むことが可能</li>
+  <li>Jungle はデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとして TreeOperationLog に残している。</li>
   <li>Jungleの分散機構には、当研究室で開発している分散フレームワークAliceのTopologyManagerという機能を使用している</li>
-  <li>Aliceでは、ComputationとMetaComputationに階層化し、コアな仕様と複雑な例外処理に分離す</li>
-  <li>分散環境構築などの複雑な処理はAliceがMeta Computationとして提供する</li>
-  <li>コードの変更を抑え、変更前の信頼性を保ったまま拡張可能にする</li>
 </ul>
 
 
@@ -118,7 +117,7 @@
 <h1 id="section-2">研究目的</h1>
 <ul>
   <li>これまでJungleの分散性能を測定する方法が確立されていなかった</li>
-  <li>Jungleの分散環境上での性能を測定する環境を構築する</li>
+  <li>Jungleの分散環境上での性能を測定する環境を構築するため、</li>
   <li>実際に分散環境上で Jungleに -write , -count オプションで負荷をかけ、処理にかかる時間を –showTime オプションで出力結果に表示した。</li>
 </ul>
 
@@ -153,253 +152,68 @@
   <li>Jungleの分散機構はツリートポロジーを想定している</li>
   <li>ツリー型であれば、データの整合性をとる場合、一度トップまでデータを伝搬させることで行える</li>
   <li>ノード間でデータの衝突が生じても、Mergeして改めて送り直せばいいからである
-<img src="./images/tree.pdf" alt="opt" width="60%" /></li>
-</ul>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="data-segment-manager">Data Segment Manager</h1>
-<ul>
-  <li>DS の集合体であるデータベースを  <strong>DS Manager(DSM)</strong> と呼ぶ。
-    <ul>
-      <li>Local DSM … 各ノード固有のデータベース。</li>
-      <li>Remote DSM … 他のノードの Local DSM の proxy。接続しているノードの数だけ存在する。</li>
-    </ul>
-  </li>
-  <li>DSM 内の DS には対になる String型のkey が存在し、 DSM 名と key を指定しすることで DS の保存、取得を行う。
-<img src="./images/remote_datasegment.svg" alt="opt" width="50%" /></li>
-</ul>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="computation--meta-computation">Computation と Meta Computation</h1>
-<ul>
-  <li>Aliceでは、計算の本質的な処理をComputatin、Computationとは直接関係ないが別のレベルでそれを支える処理をMeta Computationとして分けて考える。</li>
-  <li>分散トポロジーの構成、通信の切断・再接続時の処理などはMeta ComputationとしてAliceが提供</li>
-  <li>プログラマは目的の処理だけ記述し通信部分などはMeta Computationを指定することでシンプルな記述を実現</li>
+<img src="./pictures/tree.pdf" alt="tree" width="60%" /></li>
 </ul>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="computation--meta-computation-1">Computation と Meta Computation</h1>
+<h1 id="section-3">評価実験</h1>
 <ul>
-  <li>DS/CSの接続の間にMeta Computationが実行されている</li>
-  <li>AliceのMeta ComputationもCS/DSにより実現される</li>
-  <li>Meta ComputationはCS の処理を支えるMeta CSとMeta CSに管理されるMeta DSに分けられる
-<img src="./pictures/MetaCSDS.svg" alt="opt" width="70%" /></li>
+  <li>学科から16台のVMを借り,15台でJungleを1つずつ起動し、分散させる</li>
+  <li>15台のJungleはAliceのTopologyManagerでツリートポロジーを形成する</li>
+  <li>1~7台の子ノードのJungleに書き込んだデータがrootノードのJungleへMergeし終わるまでの時間を計測する</li>
 </ul>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="treevnc">TreeVNCへの応用</h1>
-<ul>
-  <li>AliceのMeta Computationの有効性を示すため実用的な例題であるTreeVNCを実装する</li>
-  <li>TightVNCをもとにした木構造画面配信システム</li>
-  <li>画面処理や分散処理が混在する複雑なTreeVNCも、Aliceを用いればTightVNCからの変更が少ない見通しの良い記述で構成可能</li>
-</ul>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="treevnc-1">TreeVNCで必要な機能</h1>
-<p>TreeVNCのComputation(VNCサーバからデータを受け取り表示)を支える機能をMeta Computationとして実装する</p>
-
+<h1 id="torque-resource-manager">TORQUE Resource Manager</h1>
 <ul>
-  <li>TreeTopologyの構成・管理(Topology Manager)</li>
-  <li>ノード間通信の切断時・再接続時の処理(ClosedEventManager)</li>
-  <li>ノードの接続状態確認(KeepAlive)</li>
-  <li>子ノードへのデータの転送(flip)</li>
-  <li>データの圧縮</li>
-</ul>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="meta-computation">Meta Computationの追加</h1>
-<ul>
-  <li>TreeVNCの数MByteの画面差分データを配信し続けるためデータを圧縮している</li>
-  <li>画面データを圧縮して送る → 解凍して画面表示 → 再圧縮して子ノードへ転送</li>
-  <li>圧縮状態のまま子ノードに送信ができれば、解凍・再圧縮 するオーバーヘッドを無くすことができる</li>
-  <li>圧縮のMeta Computationと転送のMeta Computationを追加した</li>
+  <li>perlスクリプトを16台のJungleに一度に投入するのにTORQUEを使用した</li>
+  <li>TORQUEはジョブを管理・投下・実行する3つのデーモンで構 成されており、ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、 ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される</li>
 </ul>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="meta-ds">圧縮表現(Meta DS)の追加</h1>
+<h1 id="jungle-1">Jungleにデータを書き込むスクリプト</h1>
 <ul>
-  <li>DSを複数作るのではなく、1つのDSに対しMeta DSとして以下の表現を同時に持たせる</li>
-</ul>
-
-<table style="border:none;">
-<tr><td width="550px">
-1. 一般的なJavaのオブジェクト<br />  
- LocalDSMにputしたときの形式 <br />   
-<br />
-2. シリアライズ化されたバイナリオブジェクト  <br />  
- RemoteDSMにputしたときの形式  <br />  
-<br />
-3. 2を圧縮したバイナリオブジェクト  <br />  
- 今回追加した形式  <br />  
-</td>
-<td width="500px">
-<img src="./pictures/compressDS.svg" width="100%" />
-</td>
-</tr>
-</table>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="dsmapi">圧縮表現を扱うDSMとAPIの追加</h1>
-<ul lang="java">
-  <li>Local と Remote それぞれに圧縮表現を扱う Compressed DSM を追加</li>
-  <li>DSを圧縮したい場合は指定する DSM を Compressed DSM に変える</li>
-  <li>圧縮するコードとしないコードで変更が少ない</li>
-</ul>
-<pre><code>	put("Remote", "Key", val);  
-	put("compressedRemote", "Key", val);  
-</code></pre>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-3">圧縮表現がオンデマンドに作られる</h1>
-<ul>
-  <li>DS はオブジェクト表現と圧縮表現を同時にもつため、TreeVNCでは受け取った画面データを解凍した後、転送のためにコピーや再圧縮をすることはない。</li>
-  <li>複数表現は必要最低限にしか作られない。</li>
-  <li>一つのKeyに対し様々な表現のDSが対応するが、キャストメソッドであるasClass()によってユーザーは送られてくるDSの表現を気にせず任意の型で取り出せる。</li>
-</ul>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="meta-computation-1">Meta Computationの評価</h1>
-<p>TreeVNCとAliceVNCを比較した</p>
-
-<ul>
-  <li>性能比較<br />
-  各ノードへのメッセージの伝達速度を比較<br />
-  同等の性能が実現できたか</li>
-  <li>コード比較<br />
-  コード量・コード複雑度を比較<br />
-  シンプルな記述で仕様の変更が抑えられているか</li>
+  <li>任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li>
 </ul>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-4">性能比較 - 実験結果</h1>
-<ul>
-  <li>3段目の計測結果</li>
-  <li>同じ傾向から同等の処理性能があることがわかった</li>
-</ul>
-
-<table style="border:none;">
-	<tr>
-	<td><img src="./pictures/TreeVNC_depth3.svg" width="80%" /></td>
-	<td><img src="./pictures/AliceVNC_compress_depth3.svg" width="80%" /></td>
-	</tr>
-	<tr>
-	<td align="center">TreeVNC</td>
-	<td align="center">AliceVNC</td>
-	</tr>
-</table>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-5">コード量比較</h1>
+<h1 id="alice">分散フレームワークAlice</h1>
 <ul>
-  <li>TightVNCを含む全体の行数・単語数はAliceVNCのほうが少ない</li>
-  <li>コードの増加量ではTreeVNCに比べ75%仕様の変更が抑えられている</li>
-</ul>
-
-<table style="border-collapse: collapse;border:1px solid #000000;">
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;"></th>
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;"> 行数 </th>
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;">単語数</th>
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;">TightVNCからの変更行数</th>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> TreeVNC </td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">19502</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">73646</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">7351</td>
-	</tr>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> AliceVNC </td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">14647</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">59217</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">1129</td>
-	</tr>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> 減少率 (%)</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">25</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">20</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">75</td>
-	</tr>
-</table>
-
-
-</div>
-<div class='slide '>
-<!-- _S9SLIDE_ -->
-<h1 id="section-6">コード複雑度比較</h1>
-<ul>
-  <li>循環的複雑度を用いる<br />
-  コード内の線形独立な経路の数。if や forが多いほど複雑度が高い。</li>
-</ul>
-
-<table style="border-collapse: collapse;border:1px solid #000000;">
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;"></th>
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;"> 平均値 </th>
-	<th style="border:1px solid #000000;padding:5px 15px 5px 15px;">最高値</th>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> TightVNC </td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">13.63</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">97</td>
-	</tr>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> TreeVNC </td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">15.33</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">141</td>
-	</tr>
-	<tr>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;"> AliceVNC</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">10.95</td>
-	<td style="border:1px solid #000000;padding:5px 15px 5px 15px;">99</td>
-	</tr>
-</table>
-
-<ul>
-  <li>AliceVNCのほうがTreeVNCに比べ複雑度が低い</li>
-  <li>TreeVNC で最も複雑度が高いTreeRFBProto.classはデータの待ち合わせ処理や通信処理が入り組んだ複雑なコード</li>
-  <li>AliceVNCで最も複雑度が高いSwingViewerWindow.classは、TightVNCから変更がほとんどないため、AliceVNCの持っている複雑度はTightVNCが元来持っていた複雑度</li>
+  <li>Aliceは当研究室で開発している並列分散フレームワークである</li>
+  <li>Alice は、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する</li>
 </ul>
 
 
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-7">まとめ</h1>
+<h1 id="section-4">実験環境</h1>
 <ul>
-  <li>JungleとAliceで生じていたJava等のバージョンのズレを修正した</li>
+  <li>学科の KVM 上の仮想マシンによる仮想クラスタ環境を用いて実験を行った</li>
+  <li>他の利用者とリソースが競合しないよう、TORQUE ジョブ スケジューラーを利用している</li>
+</ul>
+
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="section-5">まとめ</h1>
+<ul>
+  <li>
+    <p>JungleとAliceで生じていたJava等のバージョンのズレを修正した</p>
+  </li>
   <li>   </li>
   <li>測定用に、任意のnodeと任意のトポロジーを形成するperlスクリプトを作成した</li>
   <li>
@@ -414,7 +228,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="section-8">今後の課題</h1>
+<h1 id="section-6">今後の課題</h1>
 <ul>
   <li>
     <p>新たに確立した測定環境で現在のJungleの分散性能を測定したい</p>