changeset 33:6da0158a17a1

Add bitonicSort
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Sat, 03 Feb 2018 22:46:48 +0900
parents ebcf093795f3
children 6b1fa842b85c
files paper/evaluation.tex paper/fig/twice.pdf paper/fig/twice.svg paper/fig/twice.xbb paper/master_paper.pdf
diffstat 5 files changed, 77 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/paper/evaluation.tex	Sat Feb 03 20:56:35 2018 +0900
+++ b/paper/evaluation.tex	Sat Feb 03 22:46:48 2018 +0900
@@ -44,8 +44,8 @@
 Twice は並列実行の依存関係もなく、データ並列での実行に適した課題である。
 そのため、 通信時間を考慮しなければ CPU よりコア数が多い GPU が有利となる。
 
-要素数$2^{23}$ のデータに対する Twice の実行結果を \tabref{twice}、\figref{twice}に示す。
-CPU 実行の際は $2^{23}$ のデータを 64 個のTask に分割して並列実行を行っている。
+要素数$2^{24}$ のデータに対する Twice の実行結果を \tabref{twice}、\figref{twice}に示す。
+CPU 実行の際は $2^{24}$ のデータを 64個のTask に分割して並列実行を行っている。
 ここでの ``GPU`` は CPU、 GPU 間のデータの通信時間を含めた時間、 ``GPU(kernel only)`` は kernel のみの実行時間である。
 
 \begin{table}[htbp]
@@ -61,7 +61,7 @@
             GPU & 542.816\\ \hline
             GPU(kernel only)& 0.755\\ \hline
         \end{tabular}
-        \caption{$2^{23}$ のデータに対する Twice}
+        \caption{$2^{24}$ のデータに対する Twice}
         \label{tab:twice}
     \end{center}
 \end{table}
@@ -91,9 +91,44 @@
     \begin{center}
         \includegraphics[scale=0.6]{./fig/bitonicNetwork.pdf}
     \end{center}
-    \caption{要素数8の BtionicNetwork}
+    \caption{要素数8の BitonicNetwork}
     \label{fig:bitonicNetwork}
 \end{figure}
 
 BitonicSort はステージ毎に決まった2点間の要素の入れ替えを並列に実行することによってソートを行う。
+Gears OS ではこのステージ毎に Output Data Gear を書き出し、 次のステージの Code Gear の Input Data Gear として記述することで BitonicSort を実現する。
 
+要素数$2^{24}$ のデータに対する BitonicSort の実行結果を \tabref{bitonicSort}、\figref{bitonicSort}に示す。
+こちらも Twice と同じくCPU 実行の際は $2^{24}$ のデータを 64個のTask に分割して並列実行を行っている。
+つまり生成される Task は 64 * ステージ数 となる。
+
+\begin{table}[htbp]
+    \begin{center}
+        \begin{tabular}{|l||l|} \hline
+            Processor & Time(s) \\ \hline
+            1 CPU &  41.416 \\ \hline
+            2 CPUs & 23.340\\ \hline
+            4 CPUs & 11.952\\ \hline
+            8 CPUs & 6.320\\ \hline
+            16 CPUs & 3.336\\ \hline
+            32 CPUs & 1.872\\ \hline
+            GPU & 5.420\\ \hline
+            GPU(kernel only)& 0.163\\ \hline
+        \end{tabular}
+        \caption{$2^{24}$ のデータに対する Twice}
+        \label{tab:bitonicSort}
+    \end{center}
+\end{table}
+
+\begin{figure}[htbp]
+    \begin{center}
+        \includegraphics[scale=0.6]{./fig/bitonicSort.pdf}
+    \end{center}
+    \caption{$2^{24}$ のデータに対する BitonicSort}
+    \label{fig:bitonicSort}
+\end{figure}
+
+1 CPU と 32 CPU で 約22.12 倍 の速度向上が見られた。
+GPU では通信時間を含めると 8 CPU の約1.16倍となり、 kernel のみの実行では 32 CPU の約11.48倍となった。
+現在の Gears OS の CUDA 実装では、 Output Data Gear を書き出す際に一度 GPU から CPU へ kernel の実行結果の書き出しを行っており、その処理の時間で差が出たと考えられる。
+GPU で実行される Task 同士の依存関係の解決の際はCuDevicePtr などのGPU のメモリへのポインタを渡し、CPU でデータが必要になったときに初めて GPU から CPU へデータの通信を行う実装が必要となる。
Binary file paper/fig/twice.pdf has changed
--- a/paper/fig/twice.svg	Sat Feb 03 20:56:35 2018 +0900
+++ b/paper/fig/twice.svg	Sat Feb 03 22:46:48 2018 +0900
@@ -42,96 +42,91 @@
 <g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,422.4 L80.9,422.4 M575.0,422.4 L566.0,422.4  '/>	<g transform="translate(63.6,426.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,444.0 L80.9,444.0 M557.3,444.0 L548.3,444.0  '/>	<g transform="translate(63.6,447.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 0</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,361.0 L80.9,361.0 M575.0,361.0 L566.0,361.0  '/>	<g transform="translate(63.6,364.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,379.0 L80.9,379.0 M557.3,379.0 L548.3,379.0  '/>	<g transform="translate(63.6,382.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 100</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,299.6 L80.9,299.6 M575.0,299.6 L566.0,299.6  '/>	<g transform="translate(63.6,303.5)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,314.0 L80.9,314.0 M557.3,314.0 L548.3,314.0  '/>	<g transform="translate(63.6,317.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 200</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,238.2 L80.9,238.2 M575.0,238.2 L566.0,238.2  '/>	<g transform="translate(63.6,242.1)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,249.0 L80.9,249.0 M557.3,249.0 L548.3,249.0  '/>	<g transform="translate(63.6,252.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 300</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,176.9 L80.9,176.9 M575.0,176.9 L566.0,176.9  '/>	<g transform="translate(63.6,180.8)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,184.1 L80.9,184.1 M557.3,184.1 L548.3,184.1  '/>	<g transform="translate(63.6,188.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 400</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,115.5 L80.9,115.5 M575.0,115.5 L566.0,115.5  '/>	<g transform="translate(63.6,119.4)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,119.1 L80.9,119.1 M557.3,119.1 L548.3,119.1  '/>	<g transform="translate(63.6,123.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 500</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,54.1 L80.9,54.1 M575.0,54.1 L566.0,54.1  '/>	<g transform="translate(63.6,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M71.9,54.1 L80.9,54.1 M557.3,54.1 L548.3,54.1  '/>	<g transform="translate(63.6,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 600</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M103.3,422.4 L103.3,413.4 M103.3,54.1 L103.3,63.1  '/>	<g transform="translate(103.3,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M102.2,444.0 L102.2,435.0 M102.2,54.1 L102.2,63.1  '/>	<g transform="translate(102.2,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >1 cpu</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M166.2,422.4 L166.2,413.4 M166.2,54.1 L166.2,63.1  '/>	<g transform="translate(166.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M162.9,444.0 L162.9,435.0 M162.9,54.1 L162.9,63.1  '/>	<g transform="translate(162.9,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >2 cpus</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M229.1,422.4 L229.1,413.4 M229.1,54.1 L229.1,63.1  '/>	<g transform="translate(229.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M223.6,444.0 L223.6,435.0 M223.6,54.1 L223.6,63.1  '/>	<g transform="translate(223.6,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >4 cpus</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M292.0,422.4 L292.0,413.4 M292.0,54.1 L292.0,63.1  '/>	<g transform="translate(292.0,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M284.3,444.0 L284.3,435.0 M284.3,54.1 L284.3,63.1  '/>	<g transform="translate(284.3,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >8 cpus</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M354.9,422.4 L354.9,413.4 M354.9,54.1 L354.9,63.1  '/>	<g transform="translate(354.9,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M344.9,444.0 L344.9,435.0 M344.9,54.1 L344.9,63.1  '/>	<g transform="translate(344.9,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >16 cpus</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M417.8,422.4 L417.8,413.4 M417.8,54.1 L417.8,63.1  '/>	<g transform="translate(417.8,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M405.6,444.0 L405.6,435.0 M405.6,54.1 L405.6,63.1  '/>	<g transform="translate(405.6,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >32 cpus</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M480.7,422.4 L480.7,413.4 M480.7,54.1 L480.7,63.1  '/>	<g transform="translate(480.7,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M466.3,444.0 L466.3,435.0 M466.3,54.1 L466.3,63.1  '/>	<g transform="translate(466.3,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >gpu</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M543.6,422.4 L543.6,413.4 M543.6,54.1 L543.6,63.1  '/>	<g transform="translate(543.6,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
-		<text><tspan font-family="Arial" >gpu(only)</tspan></text>
+	<path stroke='black'  d='M527.0,444.0 L527.0,435.0 M527.0,54.1 L527.0,63.1  '/>	<g transform="translate(527.0,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+		<text><tspan font-family="Arial" >gpu(kernel only)</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,54.1 L71.9,422.4 L575.0,422.4 L575.0,54.1 L71.9,54.1 Z  '/></g>
+	<path stroke='black'  d='M71.9,54.1 L71.9,444.0 L557.3,444.0 L557.3,54.1 L71.9,54.1 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<g transform="translate(16.3,238.3) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<g transform="translate(16.3,249.1) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >time(ms)</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<g transform="translate(323.4,471.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
-		<text><tspan font-family="Arial" >CPUs</tspan></text>
-	</g>
-</g>
-<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<g transform="translate(323.4,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<g transform="translate(314.6,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >twice benchmark</tspan></text>
 	</g>
 </g>
@@ -140,44 +135,44 @@
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '87.6,422.4 119.2,422.4 119.2,331.5 87.6,331.5 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '87.1,444.0 117.5,444.0 117.5,347.8 87.1,347.8 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M87.6,422.4 L87.6,331.6 L119.1,331.6 L119.1,422.4 L87.6,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M87.1,444.0 L87.1,347.9 L117.4,347.9 L117.4,444.0 L87.1,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '150.5,422.4 182.1,422.4 182.1,372.7 150.5,372.7 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '147.7,444.0 178.2,444.0 178.2,391.4 147.7,391.4 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M150.5,422.4 L150.5,372.8 L182.0,372.8 L182.0,422.4 L150.5,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M147.7,444.0 L147.7,391.5 L178.1,391.5 L178.1,444.0 L147.7,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '213.4,422.4 244.9,422.4 244.9,397.4 213.4,397.4 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '208.4,444.0 238.9,444.0 238.9,417.6 208.4,417.6 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M213.4,422.4 L213.4,397.5 L244.8,397.5 L244.8,422.4 L213.4,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M208.4,444.0 L208.4,417.7 L238.8,417.7 L238.8,444.0 L208.4,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '276.3,422.4 307.8,422.4 307.8,409.9 276.3,409.9 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '269.1,444.0 299.5,444.0 299.5,430.7 269.1,430.7 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M276.3,422.4 L276.3,410.0 L307.7,410.0 L307.7,422.4 L276.3,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M269.1,444.0 L269.1,430.8 L299.4,430.8 L299.4,444.0 L269.1,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '339.2,422.4 370.7,422.4 370.7,415.6 339.2,415.6 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '329.8,444.0 360.2,444.0 360.2,436.8 329.8,436.8 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M339.2,422.4 L339.2,415.7 L370.6,415.7 L370.6,422.4 L339.2,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M329.8,444.0 L329.8,436.9 L360.1,436.9 L360.1,444.0 L329.8,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '402.1,422.4 433.6,422.4 433.6,418.7 402.1,418.7 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '390.4,444.0 420.9,444.0 420.9,440.1 390.4,440.1 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M402.1,422.4 L402.1,418.8 L433.5,418.8 L433.5,422.4 L402.1,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M390.4,444.0 L390.4,440.2 L420.8,440.2 L420.8,444.0 L390.4,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '464.9,422.4 496.5,422.4 496.5,89.1 464.9,89.1 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '451.1,444.0 481.6,444.0 481.6,91.2 451.1,91.2 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M464.9,422.4 L464.9,89.2 L496.4,89.2 L496.4,422.4 L464.9,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M451.1,444.0 L451.1,91.3 L481.5,91.3 L481.5,444.0 L451.1,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 	<g stroke='none' shape-rendering='crispEdges'>
-		<polygon fill = 'rgb(  0, 255, 255)' points = '527.8,422.4 559.4,422.4 559.4,421.8 527.8,421.8 '/>
+		<polygon fill = 'rgb(224, 255, 255)' points = '511.8,444.0 542.2,444.0 542.2,443.4 511.8,443.4 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M527.8,422.4 L527.8,421.9 L559.3,421.9 L559.3,422.4 L527.8,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M511.8,444.0 L511.8,443.5 L542.1,443.5 L542.1,444.0 L511.8,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 	</g>
@@ -186,7 +181,7 @@
 <g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<path stroke='black'  d='M71.9,54.1 L71.9,422.4 L575.0,422.4 L575.0,54.1 L71.9,54.1 Z  '/></g>
+	<path stroke='black'  d='M71.9,54.1 L71.9,444.0 L557.3,444.0 L557.3,54.1 L71.9,54.1 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 </g>
--- a/paper/fig/twice.xbb	Sat Feb 03 20:56:35 2018 +0900
+++ b/paper/fig/twice.xbb	Sat Feb 03 22:46:48 2018 +0900
@@ -2,7 +2,7 @@
 %%Creator: extractbb 20170318
 %%BoundingBox: 0 0 600 480
 %%HiResBoundingBox: 0.000000 0.000000 600.000000 480.000000
-%%PDFVersion: 1.3
+%%PDFVersion: 1.5
 %%Pages: 1
-%%CreationDate: Sat Feb  3 18:15:19 2018
+%%CreationDate: Sat Feb  3 22:27:55 2018
 
Binary file paper/master_paper.pdf has changed