changeset 1:e55fa2471718

fix stylefile
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2016 21:42:37 +0900
parents 5eccffd1cdd0
children 22d2226f1783
files master_paper.sty master_paper.tex
diffstat 2 files changed, 101 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/master_paper.sty	Tue Dec 22 18:35:03 2015 +0900
+++ b/master_paper.sty	Tue Feb 02 21:42:37 2016 +0900
@@ -169,6 +169,27 @@
   \if@restonecol\twocolumn\fi
 }
 
+\newcommand\frontmatter{%
+  \cleardoublepage
+  %\@mainmatterfalse
+  \pagenumbering{roman}
+}
+
+\newcommand\mainmatter{%
+  \cleardoublepage
+  % \@mainmattertrue
+  \pagenumbering{arabic}
+}
+
+\newcommand\backmatter{%
+  \if@openright
+  \cleardoublepage
+  \else
+  \clearpage
+  \fi
+  % \@mainmatterfalse
+}
+
 %付録
 \renewcommand{\appendix}{\par
   \setcounter{chapter}{0}%
--- a/master_paper.tex	Tue Dec 22 18:35:03 2015 +0900
+++ b/master_paper.tex	Tue Feb 02 21:42:37 2016 +0900
@@ -25,7 +25,7 @@
 \end{minipage}}
 \markleftfoot{% 左下に挿入
   \begin{minipage}{.8\textwidth}
-    マルチプラットフォーム対応並列プログラミングフレームワーク
+    Monad に基づくメタ計算を基本とする Gears OS の設計
 \end{minipage}}
 
 \newcommand\figref[1]{図 \ref{fig:#1}}
@@ -56,12 +56,11 @@
 \usepackage{makeidx,multicol}
 \makeindex
 \begin{document}
+\frontmatter
 
 \maketitle
 \newpage
 
-%\input{judge.tex}
-
 %要旨
 \begin{abstract}
 \end{abstract}
@@ -75,20 +74,91 @@
 %表目次
 \listoftables
 
+\mainmatter
 %chapters
 \chapter{並列分散環境下におけるプログラミング}
-\chapter{マルチプラットフォームフレームワーク}
+
+\chapter{並列プログラミングフレームワーク Cerium}
+Cerium は PlayStation 3(PS3) に搭載された Cell Broadband Engine(Cell) 向けの Fine-Grain TaskManager として当研究室で設計・開発されたフレームワークである。
+本章では Cerium の実装について説明する。
+
+\section{Cerium の概要}
+Cerium は、TaskManager, SceneGraph, Rendering Engine の3つの要素から構成される。
+Cell 用のゲームフレームワークとして開発されたが、現在では Multi-Core CPU, GPU も計算資源として利用可能な汎用計算フレームワークとなっている。
+
+\section{TaskManager}
+TaskManager は、Task と呼ばれる分割されたプログラムを管理する。
+サブルーチンまたは関数が Task の単位となる。
+Task には依存関係が設定されており、TaskManager で依存関係が解決されると実行可能な状態になる。
+TaskManager が提供する API を表:\ref{table:TaskManager_api}に示す。
+\begin{table}[htpb]
+  \begin{center}
+    \small
+    \begin{tabular}[htpb]{|c|l|} \hline
+      create\_task & Task の生成 \\ \hline
+      allocate     & 環境のアライメントに考慮した allocator \\ \hline
+      set\_inData  & Task への入力データのアドレスを追加 \\ \hline
+      set\_outData & Task からのデータ出力先アドレスを追加 \\ \hline
+      set\_param   & Task のパラメータ(32 bits) \\ \hline
+      wait\_for    & Task の依存関係を設定 \\ \hline
+      set\_cpu     & Task を実行する Device の設定 \\ \hline
+      spawn        & Task を Queue に登録 \\ \hline
+      iterate      & データ並列で実行する Task として Queue に登録 \\ \hline
+    \end{tabular}
+    \caption{TaskManager API}
+    \label{table:TaskManager_api}
+  \end{center}
+\end{table}
+
+\section{Cerium における Task}
+Task は TaskManager の API を利用して生成する。
+生成された Task には以下の要素を設定することができる。
+
+\begin{itemize}
+\item input data \\
+  set\_inData を用いて設定する Task が実行する処理に必要なデータの入力元となるアドレス。
+  関数を呼び出す際の引数に相当する。
+  汎用ポインタ(void* 型) なので Task 側で適切なキャストを行う必要がある。
+\item output data \\
+  set\_outData を用いて設定する Task が処理したデータの出力先となるアドレス。
+  関数の戻り値に相当する。
+\item parameter \\
+  set\_param を用いて設定するデータの処理に必要な実数値(index 等)。
+\item cpu type \\
+  set\_cpu を用いて設定する Task が実行される Device の組み合わせ。
+  Cell, Multi-Core CPU, GPU またはこれらの組み合わせを指定することができる。
+\item dependency \\
+  wait\_for を用いて設定する他の Task との依存関係。
+  依存関係が解決された Task は実行可能な状態となる。
+\end{itemize}
+
+TaskManager は ActiveTaskList と WaitTaskList
+
+\section{Task の Scheduling}
+
 \chapter{CbC}
-\chapter{Gears OS}
-\chapter{Monad とメタ計算}
-\chapter{Code Gear と Data Gear}
-\chapter{}
-\chapter{ベンチマーク}
+
+\chapter{GearsOS}
+\section{GearsOS の構成}
+\section{Monad とメタ計算}
+\section{Code Gear と Data Gear}
+\section{Allocator}
+\section{List}
+\section{Synchronized Queue}
+\section{Red-Black Tree}
+
 \chapter{比較}
+\section{Cerium}
+\section{従来の OS}
+
+\chapter{評価}
+\section{Twice}
+
 \chapter{結論}
 
 %謝辞
-\chapter{謝辞}
+\addcontentsline{toc}{chapter}{謝辞}
+\chapter*{謝辞}
 
 %参考文献
 \nocite{*}