Mercurial > hg > Papers > 2018 > parusu-master
changeset 60:842a8e04f5b1
Replace space
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Feb 2018 04:24:46 +0900 |
parents | ed207d6c511a |
children | a56f85c0bf90 |
files | paper/abstract.tex paper/gpu.tex paper/introduction.tex |
diffstat | 3 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/abstract.tex Thu Feb 08 04:23:21 2018 +0900 +++ b/paper/abstract.tex Thu Feb 08 04:24:46 2018 +0900 @@ -4,7 +4,7 @@ Gears OS の信頼性はモデル検査、検証を使用して保証する。 この信頼性のための計算はノーマルレベルの計算に対して別の階層のメタレベルの計算で実行される。 -このメタ計算は信頼性の他に CPU, GPU などの実行環境の切り替え, データ拡張等の拡張性を提供する。 +このメタ計算は信頼性の他に CPU、GPU などの実行環境の切り替え, データ拡張等の拡張性を提供する。 Gears OS では Task を Code Gear と入力の Input Data Gear と出力の Output Data Gear の組で表現される。 このInput/Output Data Gear によって依存関係を解決し、Input Data Gear が揃った Code Gear が並列実行される。
--- a/paper/gpu.tex Thu Feb 08 04:23:21 2018 +0900 +++ b/paper/gpu.tex Thu Feb 08 04:24:46 2018 +0900 @@ -21,7 +21,7 @@ CUDA では処理の最小の単位を thread と定義しており、それをまとめたものを block と呼ぶ。 block と thread は それぞれ3次元まで展開することが出来る。 -\figref{cudaArchitecture} に thread, block を2次元で展開した例を示す。 +\figref{cudaArchitecture} に thread、block を2次元で展開した例を示す。 \begin{figure}[htbp] \begin{center}
--- a/paper/introduction.tex Thu Feb 08 04:23:21 2018 +0900 +++ b/paper/introduction.tex Thu Feb 08 04:24:46 2018 +0900 @@ -7,18 +7,18 @@ 並列プログラミングフレームワークでは様々なプロセッサを抽象化し、CPU と同等に扱えるようにする柔軟性が求められる。 本研究室では通常の計算をノーマルレベルとし、並列処理の信頼性をノーマルレベルの計算に対して保証し、拡張性をノーマルレベルとは別の階層のメタレベルの計算で実現することを目標に Gears OS\cite{kkb-master}を設計、開発中である。 -Gears OS では処理を Code Gear、 データを Data Gear という単位を用いてプログラムを記述する。 -Code Gear は入力の Input Data Gear が揃ったら実行され、 Output Data Gear を出力する。 +Gears OS では処理を Code Gear、データを Data Gear という単位を用いてプログラムを記述する。 +Code Gear は入力の Input Data Gear が揃ったら実行され、Output Data Gear を出力する。 この Input/Output Data Gear の関係から依存関係を決定し、Input Data Gear が揃った Code Gear が並列に実行される。 Gears OS のプログラムの信頼性の確保はモデル検査、検証を使用して行う。 この信頼性のための計算はメタ計算として記述される。 このメタ計算は信頼性の他に CPU、GPU などのアーキテクチャに沿った実行環境の切り替え、データの拡張等の拡張性を提供する。 -メタ計算の処理は Meta Code Gear、 Meta Data Gear で表現する。 +メタ計算の処理は Meta Code Gear、Meta Data Gear で表現する。 Meta Code Gear は 通常の Code Gear 間に実行される。 従来の研究では OS の実装言語として Python\cite{Sigurbjarnarson:2016:PVF:3026877.3026879} や Haskell\cite{Chen:2015:UCH:2815400.2815402}\cite{Klein:2009:SFV:1629575.1629596} をノーマルレベルとして採用し、メタレベルで検証を行う研究や、メタ計算の実装を型付きアセンブラ(Typed Assembler)\cite{Yang:2010:SLI:1806596.1806610} を用いる例もある。 -Gears OS は ノーマルレベルとメタレベルを共通して表現出来る Continuation Based C(CbC) で実装を行い、 証明支援系 Agda\cite{agda} を用いて証明を行う。 +Gears OS は ノーマルレベルとメタレベルを共通して表現出来る Continuation Based C(CbC) で実装を行い、証明支援系 Agda\cite{agda} を用いて証明を行う。 CbC は Code Gear の単位でプログラムを記述し、軽量継続を用いてコード間を移動する。 軽量継続は関数呼び出しとは異なり、呼び出し元に戻らないため、呼び出し元の環境を覚えずに行き先のみを指定する。 この CbC は C と互換性のある言語で、型付きアセンブラに比べると大きな表現力を提供する。また Haskell などに比べて関数呼び出しではなく軽量継続を採用しているため、スタック上に隠された環境を持たないため、メタレベルで使用する資源を明確にできる利点がある。 @@ -28,11 +28,11 @@ この stub Code Gear はメタレベルの計算であるため、継続先の Code Gear から自動的に生成されるのが望ましい。生成に必要な情報は Code Gear と Data Gear の集まりから得る。 この集まりを Interface として定義している。 Gears OS でのプロセス、スレッドは Context が担う。 -並列実行する際は新しく Context を生成し、 それを CPU、GPU に割り振る事によって実現される。 +並列実行する際は新しく Context を生成し、それを CPU、GPU に割り振る事によって実現される。 生成された Context には実行する Code Gear と対応する Input/Output Data Gear が登録され、割り振られた先で Context に設定された Code Gear を実行する。 このContext を用いた並列処理は新規に実行環境を作り、引数を設定するなどの煩雑なメタレベルの処理であり、ノーマルレベルでは Go 言語\cite{go}の goroutine のような簡潔な並列構文があることが望ましい。 -本研究では Gears OS の基本設計、マルチコアCPU と CUDA による GPUでの実行機構、 並列構文を実装し、 例題を用いて Gears OS の並列処理の評価を行う。 +本研究では Gears OS の基本設計、マルチコアCPU と CUDA による GPUでの実行機構、並列構文を実装し、例題を用いて Gears OS の並列処理の評価を行う。 % これはryokka 向きかなぁ