# HG changeset patch # User suruga # Date 1519029060 -32400 # Node ID cc8b4c86342890ad65e1d6a4b675896631f7c0ce # Parent f6a62539e72280a4b2033bb58f5dcb4ac81c57cf fix diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/chapter3.tex --- a/paper/final_main/chapter3.tex Mon Feb 19 17:06:04 2018 +0900 +++ b/paper/final_main/chapter3.tex Mon Feb 19 17:31:00 2018 +0900 @@ -209,7 +209,7 @@ \caption{AliceによるJungleの木構造トポロジーの形成} \label{fig:topologymanager} \end{figure} -(図\ref{fig:topologymanager})の矢印の流れを以下に示す。 +図\ref{fig:topologymanager}の矢印の流れを以下に示す。 \begin{enumerate} \item TopologyManagerがトポロジーファイルを読み込む。 \item TopologyNodeがTopologyManagerに接続先を尋ねる。 @@ -220,14 +220,14 @@ 各ノードは自身を示すnodeName[3]を持ち、このnodeNameを指定することで他ノードとの通信を行う。 nodeNameは自身のサーバーノードがデータを受け取る際に指定する必要がある。 -たとえば、servernode0,servernode1,servernode2により、(図\ref{fig:LogupdateTree})のように木構造が構成されたとする。 +たとえば、servernode0,servernode1,servernode2により、図\ref{fig:LogupdateTree}のように木構造が構成されたとする。 \begin{figure}[H] \centering \includegraphics[width=100mm]{pic/LogupdateTree.pdf} \caption{トポロジーの形成} \label{fig:LogupdateTree} \end{figure} -この時、servernode0はservernode1、servernode2に対して親にあたる。逆に、servernode1,servernode2はservernode0に対して子にあたる。よって、(図\ref{fig:LogupdateTree})に矢印の隣にかかれている文字列"parent","child 1","child 2"のようにキーを指定している。 +この時、servernode0はservernode1、servernode2に対して親にあたる。逆に、servernode1,servernode2はservernode0に対して子にあたる。よって、図\ref{fig:LogupdateTree}に矢印の隣にかかれている文字列"parent","child 1","child 2"のようにキーを指定している。 servernode0からservernode1へデータを送りたい場合、”child 1”というnodeNameを追加すればいい。 このように、データアクセスしたいサーバーノードのnodeNameを追加することで、そのサーバノードのDataSegmentへデータアクセスすることができる。 他のサーバーノードのDataSegmentへデータアクセスする際には、アクセス先のサーバーノードのnodeNameを追加すればいい。 @@ -243,23 +243,39 @@ CodeSegmentはDataSegmentが必要なデータを受け取り次第、タスクを行う。DataSegmentがデータを受け取る為には、そのDataSegmentを示すキーが必要である。 \newpage -\section{測定用プログラムの実装} -これまで、本実験の概要、測定環境について説明し、次にTORQUEによるJungleへのプログラム投下方法と、Aliceによる分散通信部分の構築方法について説明した。次説では、本実験の手順と合わせて、今回実装した部分である、Jungleにデータを書き込むための機能と時間計測部分について解説する。 -本実験において、木構造を形成した32台のうち、16台のJungleへデータを100回書き込むプログラムを作成した。また、複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータを書き込んでいく時間を計測する為の機能を、新たにAliceに実装した。 +\section{データ書き込みプログラムの実装} +これまで、本実験の概要、測定環境について説明し、次にTORQUEによるJungleへのプログラム投下方法と、Aliceによる分散通信部分の構築方法について説明した。ここでは、本実験の手順と合わせて、今回実装した部分である、Jungleにデータを書き込むための機能について解説する。 +本実験において、木構造を形成した32台のうち、16台のJungleへデータを100回書き込むプログラムを作成した。 以下のソースコード \ref{Logupdate}は、実装したテストプログラムの起動部分である。 \lstinputlisting[frame=lrbt, label=Logupdate, caption=測定用プログラムの起動部分,numbers=left]{./plsource.txt} 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を起動している。このとき、-host でTopologyManagerのIPアドレスを渡し、-portでTopologyManagerのポート番号をしている。TopologyManagerのIPアドレスとポート番号を渡すことで、TopologyManagerへ参加表明をしている。 + 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の様々な場所にあるノードから書き込む。 \ No newline at end of file +%この図だと末端の子ノードからのみ書き込まれているように見える。実際は1~16の様々な場所にあるノードから書き込む。 +\section{時間計測プログラムの実装} +前節ではツリートポロジーを形成した子ノードのJungleへデータを書き込む部分、及び実験手順について解説した。複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータを書き込んでいく時間を計測する為の機能を、新たにAliceに実装した。 +ここではAliceに実装した時間計測プログラムについて解説する。 + +以下のソースコード \ref{src:alipro}は、実装したテストプログラムの起動部分である。 +\begin{lstlisting}[frame=lrbt,label=src:alipro,caption=Aliceに実装した時間計測プログラムの一部,numbers=left] + +\end{lstlisting} diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.aux --- a/paper/final_main/main.aux Mon Feb 19 17:06:04 2018 +0900 +++ b/paper/final_main/main.aux Mon Feb 19 17:31:00 2018 +0900 @@ -46,9 +46,12 @@ \newlabel{fig:topologymanager}{{3.3}{14}} \@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces トポロジーの形成}}{15}} \newlabel{fig:LogupdateTree}{{3.4}{15}} -\@writefile{toc}{\contentsline {section}{\numberline {3.6}測定用プログラムの実装}{17}} +\@writefile{toc}{\contentsline {section}{\numberline {3.6}データ書き込みプログラムの実装}{17}} \newlabel{Logupdate}{{3.5}{17}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3.5}測定用プログラムの起動部分}{17}} +\@writefile{toc}{\contentsline {section}{\numberline {3.7}時間計測プログラムの実装}{18}} +\newlabel{src:alipro}{{3.6}{18}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.6}Aliceに実装した時間計測プログラムの一部}{18}} \@writefile{toc}{\contentsline {chapter}{\numberline {第4章}性能評価}{19}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.dvi Binary file paper/final_main/main.dvi has changed diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.log --- a/paper/final_main/main.log Mon Feb 19 17:06:04 2018 +0900 +++ b/paper/final_main/main.log Mon Feb 19 17:31:00 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 2018.2.19) 19 FEB 2018 17:05 +This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2018.2.19) 19 FEB 2018 17:30 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -630,7 +630,7 @@ [13] File: pic/LogupdateTree.pdf Graphic file (type pdf) - [14] [15] [16] (./plsource.txt)) [17] + [14] [15] [16] (./plsource.txt) [17]) (./chapter4.tex [18] 第 4 章 [19 @@ -649,12 +649,12 @@ ) Here is how much of TeX's memory you used: - 4045 strings out of 493640 - 49166 string characters out of 6148698 - 237749 words of memory out of 5000000 - 7558 multiletter control sequences out of 15000+600000 + 4046 strings out of 493640 + 49178 string characters out of 6148698 + 237760 words of memory out of 5000000 + 7559 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,9n,32p,795b,1701s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on main.dvi (26 pages, 72844 bytes). +Output written on main.dvi (26 pages, 73920 bytes). diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.lol --- a/paper/final_main/main.lol Mon Feb 19 17:06:04 2018 +0900 +++ b/paper/final_main/main.lol Mon Feb 19 17:31:00 2018 +0900 @@ -3,3 +3,4 @@ \contentsline {lstlisting}{\numberline {3.3}作成したトポロジーファイル}{11} \contentsline {lstlisting}{\numberline {3.4}本実験で使用するトポロジーファイルを生成するプログラム}{12} \contentsline {lstlisting}{\numberline {3.5}測定用プログラムの起動部分}{17} +\contentsline {lstlisting}{\numberline {3.6}Aliceに実装した時間計測プログラムの一部}{18} diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.pdf Binary file paper/final_main/main.pdf has changed diff -r f6a62539e722 -r cc8b4c863428 paper/final_main/main.toc --- a/paper/final_main/main.toc Mon Feb 19 17:06:04 2018 +0900 +++ b/paper/final_main/main.toc Mon Feb 19 17:31:00 2018 +0900 @@ -10,7 +10,8 @@ \contentsline {section}{\numberline {3.3}実験環境}{9} \contentsline {section}{\numberline {3.4}TORQUE Resource Manager}{9} \contentsline {section}{\numberline {3.5}分散フレームワーク Alice による分散環境の構築}{11} -\contentsline {section}{\numberline {3.6}測定用プログラムの実装}{17} +\contentsline {section}{\numberline {3.6}データ書き込みプログラムの実装}{17} +\contentsline {section}{\numberline {3.7}時間計測プログラムの実装}{18} \contentsline {chapter}{\numberline {第4章}性能評価}{19} \contentsline {section}{\numberline {4.1}java版jungleの分散性能の評価}{19} \contentsline {section}{\numberline {4.2}性能測定方法の評価}{19}