# HG changeset patch # User suruga # Date 1518965171 -32400 # Node ID 47e118dc653864dfb11a80e832f428b924742050 # Parent b1e659ca3552eabbf9ef10a95b69ed158a1e4b80 fix diff -r b1e659ca3552 -r 47e118dc6538 paper/.DS_Store Binary file paper/.DS_Store has changed diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/chapter3.tex --- a/paper/final_main/chapter3.tex Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/chapter3.tex Sun Feb 18 23:46:11 2018 +0900 @@ -114,9 +114,9 @@ \section{分散フレームワーク Alice による分散環境の構築} -分散させたJungleの通信部分を担うのが、当研究室で開発している並列分散フレームワークAlice[1である。Aliceは、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する。今回扱うサーバーノードに学科の仮想マシン(VM)を用いる。 +分散させたJungleの通信部分を担うのが、当研究室で開発している並列分散フレームワークAlice[1]である。Aliceは、ネットワーク上の複数のサーバーノードにトポロジーを形成させ、通信する機能を提供する。今回扱うサーバーノードに学科の仮想マシン(VM)を用いる。 本研究では、分散環境上でのJungleの性能を確認する為、VM32台分のサーバーノードを用意し、それぞれで1台ずつJungle起動することで、分散させる。 -Jungleを起動したサーバーノード間の通信部分を、当研究室で開発している並列分散フレームワークAlice[1]にて再現する。 +%Jungleを起動したサーバーノード間の通信部分を、当研究室で開発している並列分散フレームワークAlice[1]にて再現する。 Aliceには、ネットワークのトポロジーを構成するTopologyManager[2]という機能が備わっている。サーバーノードはTopologyManagerに、誰に接続を行えばよいかを尋ねる。TopologyManagerは尋ねてきたサーバーノードに順番に、接続先のサーバーノードのIPアドレス、ポート番号、接続名を送り、受け取ったサーバーノードはそれらに従って接続する。 この時、TopologyManager自身はVM0を用いて立ち上げる。 @@ -148,59 +148,47 @@ servernode0からservernode1へデータを送りたい場合、”child 1”というキーを追加すればいい。 このように、データアクセスしたいサーバーノードのキーを追加することで、そのサーバノードのDataSegmentへデータアクセスすることができる。 他のサーバーノードのDataSegmentへデータアクセスする際には、アクセス先のサーバーノードのキーを追加すればいい。 - %TreeOperationLog トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLogを利用する。TreeOperationLogは、Jungleによるノードの編集の履歴などの情報が入っている。TreeOperationLogは、AliceのDataSegmentでも扱えるようシリアライズ化されたデータである。よって、Aliceによって構成されたネットワークトポロジーのサーバノード間でのデータのアクセスが可能になっている。 TreeOperationLogをAliceによって他のJungleへ送る。送信先のJungleでは、送られてきたTreeOperationLogを参照して送信元のJungleと同じノード編集を行う。こうして、Jungle間でのデータの同期を可能にしている。 \newpage -\section{Jungleの分散性能測定用テストプログラムの実装} -本実験において、Jungleの性能を測定する為に以下のテストプログラムを作成した。 -テストプログラムは、木構造における複数の子ノードに、データを複数書き込む機能を提供する。 -複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。データを複数書き込む機能は、Jungleを立ち上げる際に-writeオプションと-countオプションをつけることで搭載される。 +\section{測定用プログラムの実装} +これまで、本実験の概要、測定環境について説明し、次にTORQUEによるJungleへのプログラム投下方法と、Aliceによる分散通信部分の構築方法について説明した。次説では、本実験の手順と合わせて、今回実装した部分である、Jungleにデータを書き込むための機能と時間計測部分について解説する。 +本実験において、木構造を形成した32台のうち、16台のJungleへデータを100回書き込むプログラムを作成した。また、複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータを書き込んでいく時間を計測する為の機能を、新たにAliceに実装した。 +以下のソースコード \ref{src:Logupdate}は、実装したテストプログラムの起動部分である。 -測定範囲は、複数の子ノードから書き込まれたデータが全てrootノードへ到達し、書き込みが終了するまでの時間である。 +\begin{lstlisting}[frame=lrbt,label=src:Logupdate,caption=測定用プログラムの起動部分,numbers=left] +mysystem("ssh $nodes[0] \"cd $logFile/$logNum;java -cp ../../build/libs/logupdateTest-1.1.jar alice.topology.manager.TopologyManager -conf ../../scripts/tree.dot -p 10000 --showTime --noKeepAlive > $logNum\" ",1); +$logNum++; +sleep 10; +for my $i (1..($#nodes-1)) { + mkdir "$logFile/$logNum"; + mysystem("ssh $nodes[$i] \"cd $logFile/$logNum;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 --noKeepAlive > $logNum\" & "); + $logNum++; +} +mkdir "$logFile/$logNum"; +mysystem("ssh $nodes[$#nodes] \"cd $logFile/$logNum;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 -write -count 10 --noKeepAlive > $logNum\" &" ); +for (@wait) { + wait; +} +\end{lstlisting} +1行目で本実験のネットワークトポロジーを形成するためtopokogymanagerの起動を行なっている。$nodesはVM0~VM31台の、合計32台の仮想マシンを表し、TopologyManagerはVM0に起動する。 +-p オプションはTopologyManagerが開くポートの番号、-confオプションには dot ファイルのパスを渡している。ポート番号はAliceのより記述された並列分散プログラムの起動時に渡す必要がある。 +dot ファイルには、トポロジーをどのように構成するかが書かれている。dotファイルを読み込んだAliceのTopologyManagerに対して、サーバーノードは誰に接続を行えばよいかを尋ねる。TopologyManagerは尋ねてきたサーバーノードに対してノード番号を割り振り、dotファイルに記述している通りにサーバーノードが接続を行うように指示をだす。 +-showTime オプションは、今回Aliceに実装した機能である。--showTime オプションをつけることで、出力される結果に、子ノードのJungleからの書き込みがrootノードのJungleへ到達し、書き込みが終了したときの時間が表示されるようになる。 +4行目では、Jungleを起動している。 +10行目では、4行目と同様jungleを起動しているが、今回実装した-writeオプションと-countオプションをつけている。 +-writeオプションは、Jungleにデータを書き込む機能をつけることができる。 +-countオプションは、何回データを書き込むかを指定することができる。隣に引数をつけることで、回数を設定できる。本実験では、16台のJungleで、100回データを書き込むよう設定する。 +すなわち、TopologyManagerに1台、writeモードで立ち上げるJungleに16台使た後、残りの15台はそのままJungleを起動させている。 +このスクリプトは、TORQUEによって各サーバーノードへ投入され、実行される。 + + +%データを複数書き込む機能は、Jungleを立ち上げる際に-writeオプションと-countオプションをつけることで搭載される。 + + %Aliceのコードを参照する限り、TopologyManagerが起動した時から、終了するまでの間で時間を取得している。 %この図だと末端の子ノードからのみ書き込まれているように見える。実際は1~16の様々な場所にあるノードから書き込む。 -\begin{figure}[htbp] - \centering - \includegraphics[width=100mm]{pic/logupdatetest2.pdf} - \caption{TestプログラムによるJungleの性能測定} - \label{fig:logupdatetest} -\end{figure} -到達時間を測定するためには、AliceのTopologyManagerを立ち上げる際に、-show Time オプションをつける必要がある。これにより、出力される結果に末端ノードからrootノードへのデータの到達時間が表示されるようになる。 - -テストプログラムは、TopologyManagerとJungleの起動を行う。 -TopologyManagerとJungleは、用意されたVM32台に起動される。 -それぞれ、VMを何台用いて起動するかは、以下のように指定する。 - -%topologymanager -まず、本実験のネットワークトポロジーを形成するためtopokogymanagerの起動を行う。 -TopologyManagerはVM0に起動する。 -AliceのTopologyManagerの起動はソースコード\ref{src:Logupdate.pl}のように行う。 -\begin{lstlisting}[frame=lrbt,label=src:Logupdate.pl,caption=Alice によるネットワークトポロジーマネージャーの起動,numbers=left] -% ssh $nodes[0] \"cd $logFile;java -cp ../../build/libs/logupdateTest-1.1.jar alice.topology.manager.TopologyManager -conf ../../scripts/tree.dot -p 10000 --showTime --noKeepAlive -\end{lstlisting} --p オプションはTopologyManagerが開くポートの番号、-confオプションには dot ファイルのパスを渡している。 - ポート番号はAliceのより記述された並列分散プログラムの起動時に渡す必要がある。 - dot ファイルには、トポロジーをどのように構成するかが書かれている。dotファイルを読み込んだAliceのTopologyManagerに対して、サーバーノードは誰に接続を行えばよいかを尋ねる。TopologyManagerは尋ねてきたサーバーノードに対してノード番号を割り振り、dotファイルに記述している通りにサーバーノードが接続を行うように指示をだす。 -このとき、子ノードからの書き込みがrootノードへ到達したときの時間の計測結果を表示する -showTime オプションも一緒につける。 - -%writeモードのjungle起動 --writeオプションをつけることで、jungleにデータを書き込む機能をつけることができる。 -これを最大16台のJungleにつけて起動させる。 -また、Jungleがデータを書き込む回数は、-countオプションをつけることで指定できる。今回は、1から100の回数分書き込みを行う。 --writeオプション、-countオプションを付けたwriteモードのjungleの起動はソースコード\ref{src:WriteCount}のように行う。 -\begin{lstlisting}[frame=lrbt,label=src:WriteCount,caption=writeモードでのJungleの起動,numbers=left] -% ssh $nodes[$#nodes] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 -write -count 10 --noKeepAlive -\end{lstlisting} - -%jungleの起動 -TopologyManagerに1台、writeモードで立ち上げるJungleに16台使た後、残りの15台はそのままJungleを起動させる。 -起動はソースコード\ref{src:jungle}のように行う。 -\begin{lstlisting}[frame=lrbt,label=src:jungle,caption=Jungleの起動,numbers=left] -% ssh $nodes[$i] \"cd $logFile;java -jar ../../build/libs/logupdateTest-1.1.jar -host $nodes[0] -p 10003 -port 10000 --noKeepAlive -\end{lstlisting} - diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.aux --- a/paper/final_main/main.aux Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/main.aux Sun Feb 18 23:46:11 2018 +0900 @@ -36,33 +36,7 @@ \newlabel{src:LogupdateTest.pl}{{3.1}{9}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}本実験で投入するジョブスクリプト}{9}} \@writefile{toc}{\contentsline {section}{\numberline {3.5}分散フレームワーク Alice による分散環境の構築}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces AliceによるJungleの木構造トポロジーの形成}}{11}} -\newlabel{fig:topologymanager}{{3.3}{11}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces トポロジーの形成}}{12}} -\newlabel{fig:LogupdateTree}{{3.4}{12}} -\@writefile{toc}{\contentsline {section}{\numberline {3.6}Jungleの分散性能測定用テストプログラムの実装}{13}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces TestプログラムによるJungleの性能測定}}{13}} -\newlabel{fig:logupdatetest}{{3.5}{13}} -\newlabel{src:Logupdate.pl}{{3.2}{14}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}Alice によるネットワークトポロジーマネージャーの起動}{14}} -\newlabel{src:WriteCount}{{3.3}{14}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.3}writeモードでのJungleの起動}{14}} -\newlabel{src:jungle}{{3.4}{14}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.4}Jungleの起動}{14}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}性能評価}{15}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}java版jungleとhuskell版jungleの比較}{15}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}java版jungleの分散性能の評価}{15}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}性能測定方法の評価}{15}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}結論}{16}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}まとめ}{16}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}今後の課題}{16}} -\bibcite{1}{1} -\bibcite{2}{2} -\bibcite{3}{3} -\bibcite{4}{4} -\bibcite{5}{5} -\bibcite{5}{6} +\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces AliceによるJungleの木構造トポロジーの形成}}{10}} +\newlabel{fig:topologymanager}{{3.3}{10}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces トポロジーの形成}}{11}} +\newlabel{fig:LogupdateTree}{{3.4}{11}} diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.dvi Binary file paper/final_main/main.dvi has changed diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.lof --- a/paper/final_main/main.lof Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/main.lof Sun Feb 18 23:46:11 2018 +0900 @@ -1,13 +0,0 @@ -\addvspace {10\p@ } -\addvspace {10\p@ } -\contentsline {figure}{\numberline {2.1}{\ignorespaces ツリー型のトポロジー}}{4} -\contentsline {figure}{\numberline {2.2}{\ignorespaces ring型のトポロジー}}{5} -\contentsline {figure}{\numberline {2.3}{\ignorespaces メッシュ型のトポロジー}}{5} -\addvspace {10\p@ } -\contentsline {figure}{\numberline {3.1}{\ignorespaces 複数のjungleに書き込まれたデータがrootのjungleへ到達する時間を計測する}}{7} -\contentsline {figure}{\numberline {3.2}{\ignorespaces TORQUEの構成}}{9} -\contentsline {figure}{\numberline {3.3}{\ignorespaces AliceによるJungleの木構造トポロジーの形成}}{11} -\contentsline {figure}{\numberline {3.4}{\ignorespaces トポロジーの形成}}{12} -\contentsline {figure}{\numberline {3.5}{\ignorespaces TestプログラムによるJungleの性能測定}}{13} -\addvspace {10\p@ } -\addvspace {10\p@ } diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.log --- a/paper/final_main/main.log Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/main.log Sun Feb 18 23:46:11 2018 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2017.10.20) 18 FEB 2018 20:35 +This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2017.10.20) 18 FEB 2018 23:45 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -530,11 +530,7 @@ defining Unicode char U+2026 (decimal 8230) defining Unicode char U+2122 (decimal 8482) defining Unicode char U+2423 (decimal 9251) -)) (./main.aux - -LaTeX Warning: Label `5' multiply defined. - -) +)) (./main.aux) \openout1 = `main.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 78. @@ -555,35 +551,21 @@ LaTeX Font Info: ... okay on input line 78. \c@lstlisting=\count117 File: fig/ryukyu.pdf Graphic file (type pdf) - [0 + + [0 ] LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <24.88> not available (Font) Font shape `JT1/gt/m/n' tried instead on input line 87. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <24.88> not available (Font) Font shape `JY1/gt/m/n' tried instead on input line 87. - (./main.toc -LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available -(Font) Font shape `JT1/gt/m/n' tried instead on input line 1. -LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available -(Font) Font shape `JY1/gt/m/n' tried instead on input line 1. -LaTeX Font Info: Try loading font information for U+msa on input line 2. - -(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd -File: umsa.fd 2013/01/14 v3.01 AMS symbols A -) -LaTeX Font Info: Try loading font information for U+msb on input line 2. - -(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsb.fd -File: umsb.fd 2013/01/14 v3.01 AMS symbols B -)) + (./main.toc) \tf@toc=\write3 \openout3 = `main.toc'. [1 -] -(./main.lof) +] (./main.lof) \tf@lof=\write4 \openout4 = `main.lof'. @@ -593,7 +575,8 @@ \tf@lol=\write5 \openout5 = `main.lol'. - (./chapter1.tex [3 + +(./chapter1.tex [3 ] 第 1 章 @@ -614,44 +597,48 @@ File: pic/mesh.pdf Graphic file (type pdf) ) (./chapter3.tex [4] [5] 第 3 章 -[6 +LaTeX Font Info: Try loading font information for U+msa on input line 21. +(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 21. + +(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) [6 ] File: ./pic/gaiyou.pdf Graphic file (type pdf) - <./pic/gaiyou.pdf> [7] + +<./pic/gaiyou.pdf> [7] File: ./pic/torque.pdf Graphic file (type pdf) <./pic/torque.pdf> [8] [9] File: pic/topologymanager3.pdf Graphic file (type pdf) - - [10] + +[10] File: pic/LogupdateTree.pdf Graphic file (type pdf) - [11] [12] -File: pic/logupdatetest2.pdf Graphic file (type pdf) + [11] +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 159. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 159. - [13]) (./chapter4.tex [14] -第 4 章 -[15 - -]) (./chapter5.tex -第 5 章 -) (./bibliography.tex [16 -]) (./thanks.tex [17 - -]) [18 - -] (./main.aux) +LaTeX Warning: Reference `src:Logupdate' on page 12 undefined on input line 159 +. -LaTeX Warning: There were multiply-defined labels. - - ) +! Missing $ inserted. + + $ +l.185 + Here is how much of TeX's memory you used: - 4037 strings out of 493653 - 49132 string characters out of 6148873 - 163963 words of memory out of 5000000 - 7540 multiletter control sequences out of 15000+600000 + 4013 strings out of 493653 + 48839 string characters out of 6148873 + 191865 words of memory out of 5000000 + 7529 multiletter control sequences out of 15000+600000 16433 words of font info for 66 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 - 27i,8n,32p,662b,1701s stack positions out of 5000i,500n,10000p,200000b,80000s + 27i,8n,32p,662b,1686s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on main.dvi (22 pages, 53760 bytes). +Output written on main.dvi (15 pages, 34752 bytes). diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.lol --- a/paper/final_main/main.lol Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/main.lol Sun Feb 18 23:46:11 2018 +0900 @@ -1,4 +0,0 @@ -\contentsline {lstlisting}{\numberline {3.1}本実験で投入するジョブスクリプト}{9} -\contentsline {lstlisting}{\numberline {3.2}Alice によるネットワークトポロジーマネージャーの起動}{14} -\contentsline {lstlisting}{\numberline {3.3}writeモードでのJungleの起動}{14} -\contentsline {lstlisting}{\numberline {3.4}Jungleの起動}{14} diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.pdf Binary file paper/final_main/main.pdf has changed diff -r b1e659ca3552 -r 47e118dc6538 paper/final_main/main.toc --- a/paper/final_main/main.toc Sun Feb 18 20:35:20 2018 +0900 +++ b/paper/final_main/main.toc Sun Feb 18 23:46:11 2018 +0900 @@ -1,20 +0,0 @@ -\contentsline {chapter}{\numberline {第1章}はじめに}{1} -\contentsline {section}{\numberline {1.1}研究背景}{1} -\contentsline {section}{\numberline {1.2}研究目的}{2} -\contentsline {chapter}{\numberline {第2章}分散版jungleデータベース}{3} -\contentsline {section}{\numberline {2.1}Jungleデータベースの構造}{3} -\contentsline {section}{\numberline {2.2}分散機構}{3} -\contentsline {chapter}{\numberline {第3章}評価実験}{6} -\contentsline {section}{\numberline {3.1}実験目的}{6} -\contentsline {section}{\numberline {3.2}実験概要}{7} -\contentsline {section}{\numberline {3.3}実験環境}{8} -\contentsline {section}{\numberline {3.4}TORQUE Resource Manager}{8} -\contentsline {section}{\numberline {3.5}分散フレームワーク Alice による分散環境の構築}{10} -\contentsline {section}{\numberline {3.6}Jungleの分散性能測定用テストプログラムの実装}{13} -\contentsline {chapter}{\numberline {第4章}性能評価}{15} -\contentsline {section}{\numberline {4.1}java版jungleとhuskell版jungleの比較}{15} -\contentsline {section}{\numberline {4.2}java版jungleの分散性能の評価}{15} -\contentsline {section}{\numberline {4.3}性能測定方法の評価}{15} -\contentsline {chapter}{\numberline {第5章}結論}{16} -\contentsline {section}{\numberline {5.1}まとめ}{16} -\contentsline {section}{\numberline {5.2}今後の課題}{16}