Mercurial > hg > Papers > 2016 > kkb-master
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}