view master_paper.tex @ 2:22d2226f1783

modify title
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2016 22:08:26 +0900
parents e55fa2471718
children 0fa000320b6a
line wrap: on
line source

\documentclass[a4j,12pt]{jreport}
\usepackage{master_paper}
\usepackage{ascmac}
\usepackage[dvipdfmx]{graphicx}
\usepackage{here}
\usepackage{listings,jlisting}
\usepackage{comment}
%\input{dummy.tex} %% font

\jtitle{Code Segment と Data Segment によって構成される Gears OS の設計}
\etitle{Design of Gears OS with consist of Code and Data Semgment}
\year{平成27年度 3月}
\affiliation{\center%
  \includegraphics[clip,keepaspectratio,width=.15\textwidth]
                  {images/u-ryukyu-Mark.eps}\\
                  \vskip10mm
                  琉球大学大学院 \ 理工学研究科\\ 情報工学専攻}

\author{小久保 翔平}

\marklefthead{% 左上に挿入
  \begin{minipage}[b]{.4\textwidth}
    \includegraphics[height=1zw,clip,keepaspectratio]{images/emblem-bitmap.eps}
    琉球大学大学院学位論文(修士)
\end{minipage}}
\markleftfoot{% 左下に挿入
  \begin{minipage}{.8\textwidth}
    Monad に基づくメタ計算を基本とする Gears OS の設計
\end{minipage}}

\newcommand\figref[1]{図 \ref{fig:#1}}
\newcommand\tabref[1]{表 \ref{tab:#1}}

\lstset{%
 language={Java},
 basicstyle={\footnotesize},%
 identifierstyle={\footnotesize},%
 commentstyle={\footnotesize\itshape},%
 keywordstyle={\footnotesize\bfseries},%
 ndkeywordstyle={\footnotesize},%
 stringstyle={\footnotesize\ttfamily},
 frame={tb},
 breaklines=true,
 columns=[l]{fullflexible},%
 numbers=left,%
 xrightmargin=0zw,%
 xleftmargin=1zw,%
 numberstyle={\scriptsize},%
 stepnumber=1,
 numbersep=0.5zw,%
 lineskip=-0.5ex%
}


%%% 索引のために以下の2行を追加
\usepackage{makeidx,multicol}
\makeindex
\begin{document}
\frontmatter

\maketitle
\newpage

%要旨
\begin{abstract}
\end{abstract}

%目次
\tableofcontents

%図目次
\listoffigures

%表目次
\listoftables

\mainmatter
%chapters
\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{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{結論}

%謝辞
\addcontentsline{toc}{chapter}{謝辞}
\chapter*{謝辞}

%参考文献
\nocite{*}
\bibliographystyle{junsrt}
\bibliography{master_paper}

%付録

\printindex
\end{document}