Mercurial > hg > Papers > 2018 > suruga-thesis
view suruga-thesis/final_main/chapter3.tex @ 3:8faea9c319ed
add thesis
author | suruga |
---|---|
date | Thu, 15 Feb 2018 14:46:18 +0900 |
parents | |
children |
line wrap: on
line source
\chapter{評価実験} 本研究は、Jungleの分散環境上での性能を正しく評価するための実験を行う。 本章では実験の概要について述べる。 まず、本研究の目的について述べ、 次に、分散フレームワーク Aliceによる、本研究の分散機構を構成する方法について述べる。 次に、木構造上に立ち上げたJungleを制御するジョブスケジューラーであるTORQUEについて述べる。 最後に、本実験の測定用プログラムについて述べる。 \section{実験目的} これまでの分散環境上でのJungleの性能を測定する実験で使われたテストプログラムは、フロントエンドにJettyというWebサーバーが使われていた。 しかし、この測定方法では、Webサーバーが仲介した測定結果となってしまい、純粋なJungleの性能を測定できないという問題がある。 そこで、Webサーバーを取り除き、純粋なJungleの性能を測定するテストプログラムを作成する。 テストプログラムは、木構造における子ノードに、データを複数書き込む機能を提供する。 末端の複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。 測定範囲は、 \begin{itemize} \item 末端ノードからrootノードへデータが到達する時間 \item 末端Jungleからrootノードを介して別の末端ノードへデータが到達する時間 \end{itemize} の2点を計測する予定である。 \begin{figure}[H] \centering \includegraphics[width=100mm]{pic/logupdatetest.pdf} \caption{テストプログラムによるJungleの性能測定} \label{fig:logupdatetest} \end{figure} \newpage \section{分散フレームワーク Alice による分散環境の構築} 本研究では、分散環境上でのJungleの性能を確認する為、VM32台分のサーバーノードを用意し、それぞれでJungleを起動することで、Jungle間で通信をする環境をつくる。 Jungleを起動したサーバーノード間の通信部分を、当研究室で開発している並列分散フレームワークAlice[1]にて再現する。 Aliceには、ネットワークのトポロジーを構成するTopologyManager[2]という機能が備わっている。TopologyManagerに参加表明をしたサーバーノードに順番に、接続先のサーバーノードのIPアドレス、ポート番号、接続名を送り、受け取ったサーバーノードはそれらに従って接続する。 今回、TopologyManagerはJungleをのせたVM32台分のサーバーノードを、木構造を形成するように采配する(図\ref{fig:topologymanager} )。 トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLogを利用する。TreeOperationLogには、ノードの編集の履歴などの情報が入っている。TreeOperationLogをAliceによって他のJungleへ送ることで、送信元のJungleと同じ編集を行う。こうして、Jungle間でのデータの同期を可能にしている。 \begin{figure}[H] \centering \includegraphics[width=70mm]{pic/topologymanager.pdf} \caption{AliceによるJungleの木構造トポロジーの形成} \label{fig:topologymanager} \end{figure} \newpage \section{TORQUE Resource Manager} 分散環境上でのJungleの性能を測定するにあたり、VM32台にJungleを起動させた後、それぞれでデータを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Managerというジョブスケジューラーによって管理する。 TORQUE Resource Manager は、ジョブを管理・投下・実行する3つのデーモンで構成されており、 ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される(図\ref{fig:torque} )。 \begin{figure}[ht] \begin{center} \includegraphics[width=100mm]{./pic/torque.pdf} \end{center} \caption{TORQUEの構成} \label{fig:torque} \end{figure} ユーザーはジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。その際に、利用したいマシン数やCPUコア数を指定する。TORQUEは、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。 \newpage \section{Jungleの分散性能測定用テストプログラム} これまでの分散環境上でのJungleの性能を測定する実験で使われたテストプログラムは、フロントエンドにJettyというWebサーバーが使われていた。 しかし、Webサーバーが仲介した測定結果となってしまい、純粋なJungleの性能を測定できないという問題がある。 そこで、Webサーバーを取り除き、これまでの研究により純粋にJungleの性能を測定するテストプログラムを作成する。 テストプログラムは、木構造における子ノードに、データを複数書き込む機能を提供する。 末端の複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。 測定範囲は、 \begin{itemize} \item 末端ノードからrootノードへデータが到達する時間 \item 末端Jungleからrootノードを介して別の末端ノードへデータが到達する時間 \end{itemize} の2点を計測する予定である。 \begin{figure}[H] \centering \includegraphics[width=100mm]{pic/logupdatetest.pdf} \caption{TestプログラムによるJungleの性能測定} \label{fig:logupdatetest} \end{figure} \section{LogupdateTree.sh} LogupdateTree.shは、Aliceのトポロジーマネージャー起動後、引数で渡した数の分だけnodeを立ち上げる。複数のnodeのうち、1つをルートノードとして立ち上げ、残りを子ノードとして、ルートノードの下にツリー上に接続されていく。(図\ref{fig:LogupdateTree.pdf}) \begin{figure}[H] \centering \includegraphics[width=100mm]{pic/LogupdateTree.pdf} \caption{ルートノードと子ノードによって構成されるツリー構造} \label{fig:LogupdateTree.pdf} \end{figure} \section{killLogupdate.sh}