changeset 19:b250db0fada8

Cerium chapter done. chapter 4 not yet.
author tkaito
date Thu, 03 Feb 2011 00:48:58 +0900
parents 16df4adaa528
children 7cacc3f76c15
files paper/abstract.tex paper/cerium.tex paper/images/Mailbox.bb paper/images/PPE.bb paper/images/SIMD.bb paper/images/SPE.bb paper/images/aquarium.bb paper/images/cell-main.bb paper/images/cerium-tile.bb paper/images/cerium_rendering_tile.bb paper/images/cerium_tile.bb paper/images/drawspan.bb paper/images/drawspan.graffle paper/images/drawspan.pdf paper/images/inst-span.bb paper/images/mailtime.bb paper/images/mailtime.graffle paper/images/mailtime.pdf paper/images/polygonpack.bb paper/images/scenegraph.bb paper/images/scheduler.bb paper/images/scheduler.graffle paper/images/scheduler.pdf paper/images/sep-polygon.bb paper/images/spanpack-rendering.bb paper/images/spanpack.bb paper/images/spurs_pipeline.bb paper/images/spurs_task.bb paper/images/tapestry.bb paper/images/task-dependency1.bb paper/images/task-dependency2.bb paper/images/task-dependency3.bb paper/images/task-dependency4.bb paper/images/universe.bb paper/images/universe2.bb paper/images/universe3.bb paper/implement.tex paper/introduciton.tex paper/master_paper.tex
diffstat 39 files changed, 160 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- a/paper/abstract.tex	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/abstract.tex	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,7 @@
 \begin{abstract}
 
+
+
 我々は、家庭用ゲーム機で実行するオープンな開発フレームワークに関する
 研究を行なってきた。家庭用ゲーム機の多くは特殊なアーキテクチャであり、
 その性能を生かすためにアーキテクチャに直結したプログラミングが求められる。
@@ -20,8 +22,7 @@
 Task の処理が並列度を保ちながら動作することを保証してわけではない。
 これは並列プログラムの開発だけでなく、Cerium 内部の処理にも言えることである。
 
-そこで我々は、Task 単位で並列処理を監視し、プログラムの並列度を検証する手法を
-提案する。
+そこで我々は、Task を用いた並列プログラムの速度向上のための手法を提案する。
 
 
 \end{abstract}
--- a/paper/cerium.tex	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/cerium.tex	Thu Feb 03 00:48:58 2011 +0900
@@ -832,8 +832,26 @@
 
 \subsection{DrawSpan} \label{drawspan}
 
+現在、PlayStation 3 の GPU にアクセス API は公開されていないため、Ceirum では 
+Frame Buffer に描画する。Frame Buffer のアドレスは mmap() で取得できるため、 Task 
+出力として Frame Buffer を指定するか、Task 内で DMA 転送を行えば描画することができる。
+Mac OSX 上で動かす場合は SDL を用いて描画を行う。
 
+Rendering は DrawSpan という Task で行う。受け取った SpanPack から Span を取り出す。
+Span の端から 1 pixel ずつ見ていき、その pixel の z 座標と Z Buffer を見比べ、描画
+するものと判断されると、対応する RGB 値を書きこむ。
 
+また、DrawSpan は分割された画面領域の一部を担当するので、Span がその領域を
+越えている場合は描画しない。現在、一つの DrawSpan が描画する領域は 256x8 としてい
+る(\figref{drawspan})。
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.80]{./images/drawspan.pdf}
+  \end{center}
+  \caption{DrawSpan の担当領域}
+  \label{fig:drawspan}
+\end{figure}
 
 \begin{comment}
 \\ ###########################途中############################\\
--- a/paper/images/Mailbox.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/Mailbox.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/Mailbox.pdf
+%%Title: ./Mailbox.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 514 342
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/PPE.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/PPE.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/PPE.pdf
+%%Title: ./PPE.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 453 454
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/SIMD.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/SIMD.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/SIMD.pdf
+%%Title: ./SIMD.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 402 266
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/SPE.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/SPE.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/SPE.pdf
+%%Title: ./SPE.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 380 340
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/aquarium.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/aquarium.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./aquarium.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 349 270
-%%CreationDate: Sun Jan 30 06:15:19 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/cell-main.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/cell-main.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/cell-main.pdf
+%%Title: ./cell-main.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 423 300
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cerium-tile.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -0,0 +1,5 @@
+%%Title: ./cerium-tile.pdf
+%%Creator: extractbb 20090506
+%%BoundingBox: 0 0 476 382
+%%CreationDate: Wed Feb  2 20:29:43 2011
+
--- a/paper/images/cerium_rendering_tile.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/cerium_rendering_tile.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/cerium_rendering_tile.pdf
+%%Title: ./cerium_rendering_tile.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 510 385
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/cerium_tile.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/cerium_tile.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_tile.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 476 382
-%%CreationDate: Mon Jan 31 18:20:23 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/drawspan.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -0,0 +1,5 @@
+%%Title: ./drawspan.pdf
+%%Creator: extractbb 20090506
+%%BoundingBox: 0 0 555 301
+%%CreationDate: Wed Feb  2 20:29:43 2011
+
Binary file paper/images/drawspan.graffle has changed
Binary file paper/images/drawspan.pdf has changed
--- a/paper/images/inst-span.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/inst-span.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./inst-span.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 468 279
-%%CreationDate: Mon Jan 31 02:02:55 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/mailtime.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -0,0 +1,5 @@
+%%Title: ./mailtime.pdf
+%%Creator: extractbb 20090506
+%%BoundingBox: 0 0 380 309
+%%CreationDate: Wed Feb  2 20:29:43 2011
+
Binary file paper/images/mailtime.graffle has changed
Binary file paper/images/mailtime.pdf has changed
--- a/paper/images/polygonpack.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/polygonpack.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./polygonpack.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 499 226
-%%CreationDate: Mon Jan 31 03:38:15 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/scenegraph.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/scenegraph.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./scenegraph.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 425 274
-%%CreationDate: Sun Jan 30 05:04:52 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/scheduler.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -0,0 +1,5 @@
+%%Title: ./scheduler.pdf
+%%Creator: extractbb 20090506
+%%BoundingBox: 0 0 505 345
+%%CreationDate: Wed Feb  2 20:29:43 2011
+
Binary file paper/images/scheduler.graffle has changed
Binary file paper/images/scheduler.pdf has changed
--- a/paper/images/sep-polygon.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/sep-polygon.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./sep-polygon.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 345 261
-%%CreationDate: Mon Jan 31 05:44:07 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/spanpack-rendering.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/spanpack-rendering.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./spanpack-rendering.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 541 340
-%%CreationDate: Mon Jan 31 05:44:07 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/spanpack.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/spanpack.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./spanpack.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 534 198
-%%CreationDate: Mon Jan 31 04:12:19 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/spurs_pipeline.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/spurs_pipeline.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/spurs_pipeline.pdf
+%%Title: ./spurs_pipeline.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 533 187
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/spurs_task.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/spurs_task.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
-%%Title: ./images/spurs_task.pdf
+%%Title: ./spurs_task.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 547 236
-%%CreationDate: Mon Jan 10 04:47:02 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/tapestry.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/tapestry.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tapestry.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 497 266
-%%CreationDate: Tue Feb  1 17:14:00 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/task-dependency1.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/task-dependency1.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./task-dependency1.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 429 158
-%%CreationDate: Tue Jan 25 11:49:53 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/task-dependency2.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/task-dependency2.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./task-dependency2.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 427 158
-%%CreationDate: Tue Jan 25 11:49:53 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/task-dependency3.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/task-dependency3.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./task-dependency3.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 423 158
-%%CreationDate: Tue Jan 25 11:49:53 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/task-dependency4.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/task-dependency4.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./task-dependency4.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 421 158
-%%CreationDate: Tue Jan 25 11:49:53 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/universe.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/universe.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./universe.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 270 167
-%%CreationDate: Tue Jan 25 11:49:53 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/universe2.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/universe2.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./universe2.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 641 479
-%%CreationDate: Sun Jan 30 18:41:26 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/images/universe3.bb	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/images/universe3.bb	Thu Feb 03 00:48:58 2011 +0900
@@ -1,5 +1,5 @@
 %%Title: ./universe3.pdf
 %%Creator: extractbb 20090506
 %%BoundingBox: 0 0 640 480
-%%CreationDate: Sun Jan 30 18:41:26 2011
+%%CreationDate: Wed Feb  2 20:29:43 2011
 
--- a/paper/implement.tex	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/implement.tex	Thu Feb 03 00:48:58 2011 +0900
@@ -1,14 +1,88 @@
-\chapter{Task を用いたパイプラインの実装} \label{chapter:implement}
+\chapter{Task を用いたパイプラインの改良} \label{chapter:implement}
 
 \section{CPU スレッドの実装}
 
 各 CPU では、メインスレッドで生成された Task を受け取り、その情報を元に Task を実行する。ここでは、Task を
-扱う Scheduler の実装と、Task の本体となる部分に付いて説明する。
+扱う Scheduler の実装と、Task の本体となる部分についての説明と改良された点についての説明を行う。
 
 \subsection{Scheduler}
 
 生成された Task に従って実際の Task を実行するのが Scheduler である。Scheduler は、メインスレッドで
-生成された Task List を受け取り、その中にある Task, Task Array をパイプラインに沿って、
+生成された Task List を受け取り、その中にある Task をパイプラインに沿って、ステージを遷移
+しながら実行していく(\figref{scheduler})。現在は処理する Task の種類に Task Array が追加されている。
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.70]{./images/scheduler.pdf}
+  \end{center}
+  \caption{Scheduler}
+  \label{fig:scheduler}
+\end{figure}
+
+以下が Task ごとのパイプラインの記述である。
+
+\begin{verbatim}
+void
+Scheduler::run(SchedTaskBase* task1)
+{
+    do {
+        task1->read();
+        task2->exec();
+        task3->write();
+
+        delete task3;
+
+        task3 = task2;
+        task2 = task1;
+        task1 = task1->next(this, 0);
+    } while (task1);
+}
+\end{verbatim}
+
+メインメモリからの DMA 転送待ち時間に exec() を行うことで、
+待ち時間を隠蔽することができる。しかし、Task の処理や
+各ステージの終了タイミングによっては待ち時間(mail\_wait)が
+発生してしまう場合がある(\figref{mail_time})
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.80]{./images/mailtime.pdf}
+  \end{center}
+  \caption{DMA 転送待ち時間の発生}
+  \label{fig:mail_time}
+\end{figure}
+
+\figref{mail_time} では、task\_a の処理の途中で必要になったデータが SPE 上に
+存在しない場合、Task の処理内でメインメモリからデータ(a\_2)を要求している。
+そのデータの転送を待っている間、SPE は止まってしまう様子を示している。
+また、SPE が止まってしまう例として各ステージの終了タイミングのずれがある。 
+\figref{mail_time} の Step 2 において、task\_b の read が終了しなければ 
+Step 3 の task\_b の exec を開始することはできない。すると、task\_a の exec 
+終了から、task\_b の exec 開始までの間は SPE は止まってしまうことになる。\\
+
+TaskList にある Task が全て終了し、メインスレッドから終了のメッセージ
+を受け取ったら、 task1 は NULL となり、while 文を抜ける。
+
+SchedTaskBase クラスは、Scheduler によって実行されるインターフェースである。
+新たに Task Array を追加したので、SchedTaskBase を継承したクラスには
+Task Array 関連のクラスが追加されている。
+
+\begin{itemize}
+
+\item SchedMail \\
+メインスレッドからメッセージ(Mailbox)を取得する
+\item SchedTaskList \\
+TaskList を取得する
+\item SchedTask, SchedTaskArray \\
+TaskList から取得した Task, TaskArray を実行する
+\item SchedExit \\
+SPE の実行を終了する
+\item SchedNop, SchedTaskArrayNop \\
+何も行わない。パイプラインの待ち合わせ用
+
+Task Array を用いた SchedTaskBase クラスのパイプラインの流れを以下に示す(\figref{})。
+
+\end{itemize}
 
 ・queue info
 ・spu側からmailを送ったときにキューに溜まるようにした
--- a/paper/introduciton.tex	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/introduciton.tex	Thu Feb 03 00:48:58 2011 +0900
@@ -2,7 +2,11 @@
 \pagenumbering{arabic}
 
 \section{研究背景と目的}
-これまで、コンピュータは CPU のクロック周波数を上昇させることで処理能力を高めてきた。
+
+我々は、マルチコア CPU による並列プログラミングの処理速度と信頼性の向上を目指している。
+
+
+従来、コンピュータは CPU のクロック周波数を上昇させることで処理能力を高めてきた。
 しかし、消費電力の増加や発生する熱の問題により、Core を複数持つことによって処理能力を
 上昇させる方向に方針が変更されてきた。近年は様々なコンピュータにマルチコア CPU が
 使われるようになっており、それに伴ってプログラミング手法も新たな曲面を見せている。
@@ -24,26 +28,11 @@
 関しても言えることである。並列プログラムはその全体の処理で高い並列度を保たなければ
 全体の並列度は著しく下がってしまう (Amdahlの法則 \cite{amdahl} )
 
-そこで我々は、Task 単位で並列処理を監視し、プログラムの並列度を検証する手法を
-提案する。
-
-検証手法としては以下のものを提案する。
-
-\begin{enumerate}
-\item Task の依存関係を用いた検証手法 \label{path1}
-\item Task 実行時間時系列を用いた検証手法 \label{path2}
-\end{enumerate}
-
-これらの手法を用いて検証を行い、ボトルネックや稼働率の少ない
-箇所を見つけることで、性能向上のための改善点を発見することができる。\\
+そこで我々は、並列プログラムの高い並列度を維持する手法として、
+パイプラインの改良を提案する。
 
 本研究での Task の単位は、サブルーチンまたは関数とする。
 
-検証手法 \ref{path1} では、 Task に設定されている依存関係を調べ、
-特定の Task への依存度の高さから検証を行う。
-検証手法 \ref{path2} では、実際に動作してる Task の実行時間を時系列順に
-取り出し、稼働率の点から検証を行う。
-
 \section{論文構成}
 
 \begin{description}
--- a/paper/master_paper.tex	Tue Feb 01 17:16:04 2011 +0900
+++ b/paper/master_paper.tex	Thu Feb 03 00:48:58 2011 +0900
@@ -6,7 +6,7 @@
 
 \input{dummy.tex} %% font
 
-\jtitle{Cell Task Manager Cerium における \\ Task を用いたパイプラインの実装}
+\jtitle{Cell Task Manager Cerium  \\ Task を用いたパイプラインの改良}
 \etitle{}
 \year{平成22年度}
 \affiliation{\center%
@@ -56,8 +56,8 @@
 \input{cerium.tex} %3
 \input{implement.tex} %4
 %\input{vertify.tex} %5
-\input{programming.tex} %5
-\input{conclusion.tex} %6
+%\input{programming.tex} %5
+\input{conclusion.tex} %5
 
 %謝辞