changeset 42:ff15fb78a3ae

fix
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Tue, 04 Feb 2014 06:35:58 +0900
parents 5b69636936cc
children aa6de0f67a0a
files paper/abstract.tex paper/abstract_eng.tex paper/chapter1.tex paper/chapter3.tex paper/chapter4.tex paper/images/request.graffle paper/images/request.pdf paper/images/request.xbb paper/master_paper.pdf paper/master_paper.sty paper/master_paper.tex
diffstat 11 files changed, 536 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/paper/abstract.tex	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/abstract.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -1,7 +1,7 @@
 \begin{abstract}
 
 Haskellは純粋関数型プログラミング言語である。
-モダンな型システムを持ち、型推論と型安全により信頼性の高いプログラムを書くことが可能である。
+モダンな型システムを持ち、型推論と型安全により信頼性の高いプログラムを書くことが可能である\cite{types}。
 Haskellは純粋であるため、関数は引数が同じならば必ず同じ値を返すことが保証されている。
 
 本研究では、Haskell を用いて並列に読み書き可能なデータベースの実装を行う。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/abstract_eng.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -0,0 +1,12 @@
+\begin{abstract_eng}
+Haskell is a purely-functional programming language.
+It provides a modern type system, type-safe and type inference makes it possible to write a program reliable\cite{types}.
+Haskell has referential transparency that allows the programmer and the compiler to reason about program behavior.
+
+In this study, We implement the parallel database using Haskell and non-destructive tree.
+
+We measures the performance for reading and writing of parallel database.
+We achieve to bring out the performance of the multi-core processor.
+
+Further, in order to indicate the availability of practical applications, we have developed a Web bulletin board service.
+\end{abstract_eng}
--- a/paper/chapter1.tex	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/chapter1.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -93,7 +93,7 @@
 違った型の要素を付け加えようとすると Haskell はコンパイル時にエラーを出す。
 例えば、Int のリスト [3,4] に、文字である 'b' を付け加えようとした場合以下の様なエラーが発生する。
 
-\begin{lstlisting}[label=src:list, caption=Haskellのコンパイル時エラー]
+\begin{lstlisting}[caption=Haskellのコンパイル時エラー]
 <interactive>:3:7:
     Couldn't match type `Int' with `Char'
     Expected type: [Char]
@@ -258,9 +258,9 @@
 
 Haskell の関数には副作用がないと述べたが、IO モナドを返す関数にも副作用は存在しない。
 
-例えば、getChar という関数がある。
-呼び出した状況によって、返ってくる文字が違うため副作用があるようにみえる。
-しかし、実際にこの関数が返すのは、「一文字読み込む」という命令書である。
+例えば、Jungle には getRootNode というIOを返す関数がある。
+呼び出した状況によって、返ってくるノードが違うため副作用があるようにみえる。
+しかし、実際にこの関数が返すのは、「ノードを取得する」という命令書である。
 どんな状況においても同じ命令書を返すため、副作用はない。
 
 \clearpage
--- a/paper/chapter3.tex	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/chapter3.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -432,7 +432,7 @@
 \section{Haskell の生産性}
 Java を用いた Jungle の実装と比較して、コード行数が約 3000 行から約 300 行へと短くなった。
 
-Haskell では、独自のデータ型を簡単に作成することができる。
+Haskell では、独自のデータ型を作成することができる。
 再帰的なデータ構造の定義も容易である。
 また、Haskellは参照透過性を持つため、コードの再利用が行い易く、関数同士の結合も簡単である。
 
--- a/paper/chapter4.tex	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/chapter4.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -1,15 +1,17 @@
 \chapter{性能評価}\label{ch:bench}
 本章では、非破壊的木構造データベース Jungle がマルチコアプロセッサで性能向上を果たせるのか確認する。
-まずはじめに、並列読み込みと並列書き込みの性能の計測を行う。
-また、掲示板ウェブアプリケーションを作成し、Java を用いた非破壊的木構造データベースとの性能比較を行う。
+また、実用的なWebサービスが提供できるのか確認するために Web 掲示板サービスを開発し、Java との比較を行う。
 
 \section{計測環境}
 マルチコアプロセッサでの性能を確認するためコア数の多いサーバを用いる。
 本研究では、学科が提供するブレードサーバを用いて、計測環境を構築する。
 ブレードサーバの仕様を表\ref{tab:server_spec}に示す。
 
+論理コアは、Intel のハイパースレッディング機能のことであうr.
+ハイパースレッディングは、1つのプロセッサをあたかも2つのプロセッサであるかのように扱う技術であり、
+同時に演算器などを利用することはできないため性能が2倍になるわけではないが、概ね20 \%程度クロックあたりの性能が向上すると言われている。
+
 \begin{table}[!htbp]
-\caption{学科が提供するブレードサーバの仕様}
 \label{tab:server_spec}
 \begin{center}
 \begin{tabular}{|c||c|} \hline
@@ -21,21 +23,21 @@
 OS & Fedora 14 \\ \hline
 \end{tabular}
 \end{center}
+\caption{学科が提供するブレードサーバの仕様}
 \end{table}
 
 非破壊的木構造データベース Jungle の並列読み込みと並列書き込みの性能の計測には1台、
-掲示板ウェブアプリケーションを用いた Java との性能比較には2台のブレードサーバを利用する。
-2台使用するのは、サーバと負荷をかけるクライアントを別々に実行するためである。
+Web 掲示板 サービスを用いた Java との性能比較には2台のブレードサーバを利用する。
+2 台使用するのは、サーバと負荷をかけるクライアントを別々に実行するためである。
 
 \subsubsection{Haskell および Java のバージョン}
 Haskell のコンパイラには The Glasgow Haskell Compiler(GHC)を使用する。
-GHC は、Haskell で最も広く使われているコンパイラである。
+GHC は、Haskell で最も広く使われているコンパイラである\cite{ghc}。
 ソフトウェア・トランザクショナル・メモリをサポートするなど、並列プログラミングのためのHaskellの拡張が行われている。
 
 Haskell および Java のバージョンを表\ref{tab:compiler}に示す。
 
 \begin{table}[!ht]
-\caption{ベンチマークで利用したHaskellとJavaのバージョン}
 \label{tab:compiler}
 \begin{center}
 \begin{tabular}{|c||c|} \hline
@@ -44,6 +46,7 @@
 Java & Java(TM) SE Runtime Environment (build 1.7.0\_51-b13) \\ \hline
 \end{tabular}
 \end{center}
+\caption{ベンチマークで利用したHaskellとJavaのバージョン}
 \end{table}
 
 計測環境の構築方法については付録に記載する。
@@ -67,14 +70,9 @@
 
 CPUコア数を増やしていくと、実行時間が短くなっていることが分かる。
 シングルスレッドで実行した場合と比較して、2 スレッドで 1.79 倍、12 スレッドで 10.77 倍の性能向上が見られる。
-13 スレッド以上は、Intel のハイパースレッディング機能を利用して計測した。
-ハイパースレッディングは、1つのプロセッサをあたかも2つのプロセッサであるかのように扱う技術である。
-同時に演算器などを利用することはできないため性能が2倍になるわけではないが、概ね20 \%程度クロックあたりの性能が向上すると言われている。
 実際の計測では、13 スレッド以上は、12スレッドより速くなることもあるが、遅くなる場合もあるなど安定しない結果となっている。
 
-
 \begin{table}[!htbp]
-\caption{読み込みの計測結果}
 \label{tab:par_read}
 \begin{center}
 \begin{tabular}{|c||r|} \hline
@@ -89,18 +87,19 @@
 24 & 5.77 s\\ \hline
 \end{tabular}
 \end{center}
+\caption{読み込みの計測結果}
 \end{table}
 
 性能向上率のグラフを図\ref{fig:benchmark_read}に示す。
 線形に近い形で性能が向上していることが分かる。
-12 スレッドで実行した場合の並列化率は 98.96 \%で、非破壊的木構造データベース Jungle は読み込みにおいてスケールするデータベースであることが分かる。
+非破壊的木構造データベース Jungle は読み込みにおいてスケールするデータベースであることが分かる。
 
 \begin{figure}[!htbp]
- \caption{読み込みの性能向上率}
  \begin{center}
   \includegraphics[width=90mm]{./images/read.pdf}
  \end{center}
  \label{fig:benchmark_read}
+ \caption{読み込みの性能向上率}
 \end{figure}
 
 \clearpage
@@ -124,7 +123,6 @@
 
 
 \begin{table}[!htbp]
-\caption{書き込みの計測結果}
 \label{tab:par_write}
 \begin{center}
 \begin{tabular}{|c||r|} \hline
@@ -139,22 +137,23 @@
 24 & 16.63 s\\ \hline
 \end{tabular}
 \end{center}
+\caption{書き込みの計測結果}
 \end{table}
 
 性能向上率のグラフを図\ref{fig:benchmark_write}に示す。
 書き込みは並列化率が低く、性能向上が 4 倍程度で止まっている。
-12 スレッドで実行した場合の並列化率は 80.8 \%である。
 
 \newpage
 \begin{figure}[!htbp]
- \caption{書き込みの性能向上率}
  \begin{center}
   \includegraphics[width=90mm]{./images/write.pdf}
  \end{center}
  \label{fig:benchmark_write}
+ \caption{書き込みの性能向上率}
 \end{figure}
 
-Jungle へ登録する際に他のスレッドから登録があった場合に、ソフトウェア・トランザクショナル・メモリが処理をやり直すため、並列度が下がっていると思われるが、GHCの問題も考えられる。
+Jungle へ木の登録する際に他のスレッドから登録があった場合、ソフトウェア・トランザクショナル・メモリが処理をやり直すため、並列度が下がっていると思われる。
+また、GHC の問題も考えられる。
 GHC の IO マネージャーは、マルチスレッドでうまくスケールしないという問題があり、並列度が下がってしまう。
 GHCの次期バージョンではIO マネージャーが改善され、スケールするようになる見込みである\cite{iomanager}。
 
@@ -163,19 +162,21 @@
 
 \clearpage
 
-\section{ウェブアプリケーションに組み込んでの性能評価}
-実用的なウェブアプリケーションに組み込んで、妥当な性能が出るか調査を行う。
+\section{Web サービスに組み込んでの性能評価}
+並列データベース Jungle が実用的なWeb サービスを提供できるのか調査する。
+Web掲示板サービスに組み込んで、性能測定を行った。
 
-\subsection{掲示板ウェブアプリケーションの実装}
-木構造データベース Jungle と Haskell の HTTP サーバ Warp を用いて掲示板ウェブアプリケーションを開発する。
-Warp を用いたウェブアプリケーションの構築法については付録に記載する。
+\subsection{Web 掲示板サービスの実装}
+木構造データベース Jungle と Haskell の HTTP サーバ Warp\cite{warp} を用いて Web 掲示板サービスを開発する。
+Warp を用いたWeb サービスの構築法については付録に記載する。
+Warp は、ハイパースレッディングの効果がなくハイパースレッディング利用時に遅くなるため、12 スレッドまでの計測とする。
 
+Warp は並列に実行可能であり、並列に実行している Warp に対して、Jungle を繋げるだけで Jungle を並列に動かすことができる。
 掲示板におけるデータベースへの書き込みは、板の作成と、板への書き込みがある。
 Jungle において、板の作成は新しい木構造の作成、板への書き込みは木構造へのノードの追加で表現する。
 掲示板へ実装した機能を表\ref{tab:bbs_func}に示す。
 
 \begin{table}[!htbp]
-\caption{掲示板ウェブアプリケーションへ実装した機能一覧}
 \label{tab:bbs_func}
 \begin{center}
 \begin{tabular}{|c||c|} \hline
@@ -187,8 +188,18 @@
   editMessage & 板への書き込みの編集 \\ \hline
 \end{tabular}
 \end{center}
+\caption{Web掲示板サービスへ実装した機能一覧}
 \end{table}
 
+\begin{figure}[!htbp]
+ \begin{center}
+  \includegraphics[width=90mm]{./images/request.pdf}
+ \end{center}
+ \label{fig:request}
+ \caption{Warp を用いたWeb掲示板サービス}
+\end{figure}
+
+
 \subsection{読み込み}
 \subsubsection{計測方法}
 掲示板に対して読み込みを行い、負荷をかける。
@@ -196,8 +207,6 @@
 
 weighttpの設定は、リクエストの総数 100 万、同時に接続するコネクションの数 1,000、実行時のスレッド数 10、HTTP Keep-Alivesを有効とする。
 
-HTTP サーバ Warp は、ハイパースレッディングの効果がなくハイパースレッディング利用時に遅くなるため、12 スレッドまでの計測とする。
-
 \subsubsection{計測結果}
 
 掲示板の読み込みの計測結果を表\ref{tab:bbs_read}に示す。
@@ -205,14 +214,13 @@
 並列で実行した場合、実行時間が短くなっているが性能向上率が低いことが分かる。
 これは HTTP サーバ Warp がボトルネックとなってしまっているためだと考えられる。
 
-Warp を用いてアクセスした際に、"hello, world"と返すだけのプログラムを作成し測定する。
+Warp のボトルネックがどれぐらいあるのか調査するために、アクセスした際に "hello, world" と返すだけのプログラムを作成し測定する。
 結果を表\ref{tab:warp}に示す。
 1 スレッドで実行した場合は、Jungle と組み合わせた掲示板より速い。
 しかしながら、スレッド数が増えていくと掲示板の読み込みとあまり結果が変わらなくなってしまう。
-Warpは、HTTP サーバのため IO 処理を多用する。この問題は、GHC の IO マネージャーの改良で改善される可能性が高い。
+Warp は現状あまり並列化効果がでていない。
 
 \begin{table}[!htbp]
-\caption{掲示板を利用した読み込みの計測結果}
 \label{tab:bbs_read}
 \begin{center}
 \begin{tabular}{|c||r|} \hline
@@ -224,10 +232,10 @@
 12 & 28.33 s\\ \hline
 \end{tabular}
 \end{center}
+\caption{掲示板を利用した読み込みの計測結果}
 \end{table}
 
 \begin{table}[!htbp]
-\caption{Warpの計測結果}
 \label{tab:warp}
 \begin{center}
 \begin{tabular}{|c||r|} \hline
@@ -239,9 +247,10 @@
 12 & 29.23 s\\ \hline
 \end{tabular}
 \end{center}
+\caption{Warpの計測結果}
 \end{table}
 
-ウェブアプリケーションを用いて実験する場合、データベースだけがボトルネックとなるように負荷をかけるのは難しい。
+Web サービスを用いて実験する場合、データベースだけがボトルネックとなるように負荷をかけるのは難しい。
 ただ単にデータを大きくするだけでは、文字列をHTMLに変換するコストが大きくなってしまうためである。
 
 \subsection{書き込み}
@@ -249,16 +258,15 @@
 掲示板に対して書き込みを行い、負荷をかける。
 掲示板を立ち上げるサーバと、weighttpを用いて負荷をかけるサーバの 2 台ブレードサーバを用いて測定を行った。
 
-weighttpでは、GET しかできないためURLのクエリ文字列でデータを書き込めるように掲示板ウェブアプリケーションを変更した。
+weighttpでは、GET しかできないためURLのクエリ文字列でデータを書き込めるようにWeb掲示板サービスを変更した。
 weighttp起動時のオプションは、読み込みと同じである。
 \subsubsection{計測結果}
 
 掲示板の書き込みの計測結果を表\ref{tab:bbs_write}に示す。
 並列で実行した場合、実行時間が短くなっているが性能向上率が低いことが分かる。
-これも HTTP サーバ Warp がボトルネックとなってしまっているためだと考えられる。
+読み込みに比べて、書き込みのほうが全体的に遅くなっている。
 
 \begin{table}[!htbp]
-\caption{掲示板を利用した書き込みの計測結果}
 \label{tab:bbs_write}
 \begin{center}
 \begin{tabular}{|c||r|} \hline
@@ -271,20 +279,20 @@
 12 & 32.68 s\\ \hline
 \end{tabular}
 \end{center}
+\caption{掲示板を利用した書き込みの計測結果}
 \end{table}
 
 \subsection{Javaを用いた非破壊的木構造データベースとの比較}
 非破壊的木構造データベースは、Haskell 版と Java 版の2つ存在する。
-掲示板ウェブアプリケーションを両方の言語で実装し、比較を行う。
+Web 掲示板サービスを両方の言語で実装し、比較を行う。
 Haskell ではフロントエンドとして Warp を利用したが、Java では Jetty を利用する。
 Jetty のバージョンは 6.1.26 を用いる。
 
-Haskell 版と Java 版の掲示板ウェブアプリケーションをブレードサーバ上で実行し、
+Haskell 版と Java 版の Web 掲示板サービスをブレードサーバ上で実行し、
 weightttpで負荷をかけ100万リクエストを処理するのにかかる時間を計測する。
 Haskell と Java の測定結果を表\ref{tab:compare}に示す。
 
 \begin{table}[!htbp]
-\caption{HaskellとJavaの比較}
 \label{tab:compare}
 \begin{center}
 \begin{tabular}{|c||r|r|} \hline
@@ -293,6 +301,7 @@
   書き込み & 32.68 s & 76.4 s \\ \hline
 \end{tabular}
 \end{center}
+\caption{HaskellとJavaの比較}
 \end{table}
 
 Haskell 版は、Java 版と比較して読み込みで 1.87 倍、書き込みで 2.3 倍の性能が出ている。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/request.graffle	Tue Feb 04 06:35:58 2014 +0900
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>ActiveLayerIndex</key>
+	<integer>0</integer>
+	<key>ApplicationVersion</key>
+	<array>
+		<string>com.omnigroup.OmniGrafflePro</string>
+		<string>139.17.0.185490</string>
+	</array>
+	<key>AutoAdjust</key>
+	<false/>
+	<key>BackgroundGraphic</key>
+	<dict>
+		<key>Bounds</key>
+		<string>{{0, 0}, {559, 783}}</string>
+		<key>Class</key>
+		<string>SolidGraphic</string>
+		<key>ID</key>
+		<integer>2</integer>
+		<key>Style</key>
+		<dict>
+			<key>shadow</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+			<key>stroke</key>
+			<dict>
+				<key>Draws</key>
+				<string>NO</string>
+			</dict>
+		</dict>
+	</dict>
+	<key>BaseZoom</key>
+	<integer>0</integer>
+	<key>CanvasOrigin</key>
+	<string>{0, 0}</string>
+	<key>ColumnAlign</key>
+	<integer>1</integer>
+	<key>ColumnSpacing</key>
+	<real>36</real>
+	<key>CreationDate</key>
+	<string>2014-02-03 20:48:40 +0000</string>
+	<key>Creator</key>
+	<string>Daichi TOMA</string>
+	<key>DisplayScale</key>
+	<string>1.000 cm = 10.000 cm</string>
+	<key>GraphDocumentVersion</key>
+	<integer>8</integer>
+	<key>GraphicsList</key>
+	<array>
+		<dict>
+			<key>Bounds</key>
+			<string>{{199, 283.5}, {53, 34}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>FitText</key>
+			<string>YES</string>
+			<key>Flow</key>
+			<string>Resize</string>
+			<key>ID</key>
+			<integer>18</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>fill</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Pad</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 HTTP\
+Request}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+			<key>Wrap</key>
+			<string>NO</string>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>17</integer>
+			<key>Points</key>
+			<array>
+				<string>{148, 317.5}</string>
+				<string>{333.00000019542364, 317.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>0</string>
+					<key>Width</key>
+					<real>2</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{23, 165}, {125, 278}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>14</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Pattern</key>
+					<integer>4</integer>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Blade Server}</string>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+		</dict>
+		<dict>
+			<key>Class</key>
+			<string>LineGraphic</string>
+			<key>ID</key>
+			<integer>12</integer>
+			<key>Points</key>
+			<array>
+				<string>{454, 317.5}</string>
+				<string>{380, 317.5}</string>
+			</array>
+			<key>Style</key>
+			<dict>
+				<key>stroke</key>
+				<dict>
+					<key>HeadArrow</key>
+					<string>FilledArrow</string>
+					<key>Legacy</key>
+					<true/>
+					<key>LineType</key>
+					<integer>1</integer>
+					<key>TailArrow</key>
+					<string>FilledArrow</string>
+					<key>Width</key>
+					<real>4</real>
+				</dict>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{330, 212}, {50, 212}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>11</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs28 \cf0 Warp}</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{454, 291}, {79, 54}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>10</integer>
+			<key>Magnets</key>
+			<array>
+				<string>{0, 1}</string>
+				<string>{0, -1}</string>
+				<string>{1, 0}</string>
+				<string>{-1, 0}</string>
+			</array>
+			<key>Shape</key>
+			<string>Cylinder</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\fs28 \cf0 Jungle}</string>
+				<key>VerticalPad</key>
+				<integer>0</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>Bounds</key>
+			<string>{{303, 165}, {246, 278}}</string>
+			<key>Class</key>
+			<string>ShapedGraphic</string>
+			<key>ID</key>
+			<integer>13</integer>
+			<key>Shape</key>
+			<string>Rectangle</string>
+			<key>Style</key>
+			<dict>
+				<key>shadow</key>
+				<dict>
+					<key>Draws</key>
+					<string>NO</string>
+				</dict>
+				<key>stroke</key>
+				<dict>
+					<key>Pattern</key>
+					<integer>4</integer>
+				</dict>
+			</dict>
+			<key>Text</key>
+			<dict>
+				<key>Align</key>
+				<integer>0</integer>
+				<key>Text</key>
+				<string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
+
+\f0\fs36 \cf0 Blade Server}</string>
+			</dict>
+			<key>TextPlacement</key>
+			<integer>0</integer>
+		</dict>
+	</array>
+	<key>GridInfo</key>
+	<dict/>
+	<key>GuidesLocked</key>
+	<string>NO</string>
+	<key>GuidesVisible</key>
+	<string>YES</string>
+	<key>HPages</key>
+	<integer>1</integer>
+	<key>ImageCounter</key>
+	<integer>1</integer>
+	<key>KeepToScale</key>
+	<true/>
+	<key>Layers</key>
+	<array>
+		<dict>
+			<key>Lock</key>
+			<string>NO</string>
+			<key>Name</key>
+			<string>Layer 1</string>
+			<key>Print</key>
+			<string>YES</string>
+			<key>View</key>
+			<string>YES</string>
+		</dict>
+	</array>
+	<key>LayoutInfo</key>
+	<dict>
+		<key>Animate</key>
+		<string>NO</string>
+		<key>circoMinDist</key>
+		<real>18</real>
+		<key>circoSeparation</key>
+		<real>0.0</real>
+		<key>layoutEngine</key>
+		<string>dot</string>
+		<key>neatoSeparation</key>
+		<real>0.0</real>
+		<key>twopiSeparation</key>
+		<real>0.0</real>
+	</dict>
+	<key>LinksVisible</key>
+	<string>NO</string>
+	<key>MagnetsVisible</key>
+	<string>NO</string>
+	<key>MasterSheets</key>
+	<array/>
+	<key>ModificationDate</key>
+	<string>2014-02-03 20:55:51 +0000</string>
+	<key>Modifier</key>
+	<string>Daichi TOMA</string>
+	<key>NotesVisible</key>
+	<string>NO</string>
+	<key>Orientation</key>
+	<integer>2</integer>
+	<key>OriginVisible</key>
+	<string>NO</string>
+	<key>PageBreaks</key>
+	<string>YES</string>
+	<key>PrintInfo</key>
+	<dict>
+		<key>NSBottomMargin</key>
+		<array>
+			<string>float</string>
+			<string>41</string>
+		</array>
+		<key>NSHorizonalPagination</key>
+		<array>
+			<string>coded</string>
+			<string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+		</array>
+		<key>NSLeftMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSPaperSize</key>
+		<array>
+			<string>size</string>
+			<string>{595, 842}</string>
+		</array>
+		<key>NSPrintReverseOrientation</key>
+		<array>
+			<string>int</string>
+			<string>0</string>
+		</array>
+		<key>NSRightMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+		<key>NSTopMargin</key>
+		<array>
+			<string>float</string>
+			<string>18</string>
+		</array>
+	</dict>
+	<key>PrintOnePage</key>
+	<false/>
+	<key>ReadOnly</key>
+	<string>NO</string>
+	<key>RowAlign</key>
+	<integer>1</integer>
+	<key>RowSpacing</key>
+	<real>36</real>
+	<key>SheetTitle</key>
+	<string>Canvas 1</string>
+	<key>SmartAlignmentGuidesActive</key>
+	<string>YES</string>
+	<key>SmartDistanceGuidesActive</key>
+	<string>YES</string>
+	<key>UniqueID</key>
+	<integer>1</integer>
+	<key>UseEntirePage</key>
+	<false/>
+	<key>VPages</key>
+	<integer>1</integer>
+	<key>WindowInfo</key>
+	<dict>
+		<key>CurrentSheet</key>
+		<integer>0</integer>
+		<key>ExpandedCanvases</key>
+		<array>
+			<dict>
+				<key>name</key>
+				<string>Canvas 1</string>
+			</dict>
+		</array>
+		<key>Frame</key>
+		<string>{{1368, 296}, {804, 922}}</string>
+		<key>ListView</key>
+		<true/>
+		<key>OutlineWidth</key>
+		<integer>142</integer>
+		<key>RightSidebar</key>
+		<false/>
+		<key>ShowRuler</key>
+		<true/>
+		<key>Sidebar</key>
+		<true/>
+		<key>SidebarWidth</key>
+		<integer>119</integer>
+		<key>VisibleRegion</key>
+		<string>{{-56, 0}, {670, 783}}</string>
+		<key>Zoom</key>
+		<real>1</real>
+		<key>ZoomValues</key>
+		<array>
+			<array>
+				<string>Canvas 1</string>
+				<real>1</real>
+				<real>1</real>
+			</array>
+		</array>
+	</dict>
+</dict>
+</plist>
Binary file paper/images/request.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/request.xbb	Tue Feb 04 06:35:58 2014 +0900
@@ -0,0 +1,8 @@
+%%Title: ./request.pdf
+%%Creator: extractbb 20130405
+%%BoundingBox: 0 0 530 282
+%%HiResBoundingBox: 0.000000 0.000000 530.000000 282.000000
+%%PDFVersion: 1.3
+%%Pages: 1
+%%CreationDate: Tue Feb  4 05:58:20 2014
+
Binary file paper/master_paper.pdf has changed
--- a/paper/master_paper.sty	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/master_paper.sty	Tue Feb 04 06:35:58 2014 +0900
@@ -147,6 +147,17 @@
       \end{center}
 }%
 
+\newenvironment{abstract_eng}{%
+      \titlepage
+      \thispagestyle{empty}
+      \null\vfil
+      \@beginparpenalty\@lowpenalty
+      {\Huge \bfseries \abstractengname}%
+      \begin{center}%
+        \@endparpenalty\@M
+      \end{center}
+}%
+
 %目次
 \renewcommand{\tableofcontents}{%
   \pagestyle{plain}
@@ -222,6 +233,7 @@
 \renewcommand{\tablename}{表}
 \renewcommand{\appendixname}{付 録}
 \renewcommand{\abstractname}{要 旨}
+\newcommand{\abstractengname}{Abstract}
 
 
 %%%% new environment for me(ryuji)
--- a/paper/master_paper.tex	Tue Feb 04 05:14:26 2014 +0900
+++ b/paper/master_paper.tex	Tue Feb 04 06:35:58 2014 +0900
@@ -31,7 +31,7 @@
 \input{font.sty}
 
 \jtitle{関数型言語 Haskell による\\並列データベースの実装}
-\etitle{}
+\etitle{Implementation of the Parallel Database using Haskell}
 \year{平成26年度}
 \affiliation{\center%
   \includegraphics[clip,keepaspectratio,width=.15\textwidth]
@@ -65,6 +65,7 @@
 
 %要旨
 \input{abstract.tex}
+\input{abstract_eng.tex}
 
 %目次
 \tableofcontents