# HG changeset patch # User Tatsuki IHA # Date 1518031401 -32400 # Node ID ed207d6c511a498007311499d3596e659793a0bb # Parent 131b1274cbaeccf920317815cc004af267dd2ba9 Add abstract diff -r 131b1274cbae -r ed207d6c511a paper/abstract.tex --- a/paper/abstract.tex Wed Feb 07 20:03:24 2018 +0900 +++ b/paper/abstract.tex Thu Feb 08 04:23:21 2018 +0900 @@ -1,20 +1,35 @@ \begin{abstract} -現在の OS では拡張性と信頼性を両立させることが要求されている。 -本研究室で開発されている Gears OS は処理を Code Gear、 データを Data Gear という単位を用いて、 信頼性をノーマルレベルの計算に対して保証し、拡張性をメタレベルの計算で実現し、並列実行を行うことを目標に設計されている。 +現在の OS では信頼性と拡張性を両立させることが要求されている。 +本研究室では 処理を Code Gear、 データを Data Gear という単位を用いて信頼性と拡張性をメタレベルで保証する Gears OS を開発している。 -Gears OS では Task を Code Gear と実行するときに必要な Input Data Gear と出力するための Output Data Gear の組で表現される。 -このInput/Output Data Gear によって依存関係が決定し、 Input Data Gear が揃った Code Gear が並列実行される。 +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 が並列実行される。 -Gears OS の Task は 並列処理構文により、生成され、TaskManager を通して CPU、GPU の Worker に送信され Code Gear の実行を行う。 +Gears OS の Task は 並列処理構文により生成され、TaskManager を通して CPU、GPU の Worker に送信され Code Gear の実行を行う。 -本論文では Gears OS の基本概念、並列処理機構の実装を行う。 また、並列処理を行う例題を用いて評価を行う。 +本論文では Gears OSの基本概念、並列処理機構の実装について述べる。 +また、並列処理を行う例題を用いて評価を行う。 \end{abstract} \begin{abstract_eng} +Current OS is required reliability and extensibility. +We are developing Gears OS using Code Gear and Data Gear, which provides reliability and extensibility by meta level computation. + +Provides reliability of Gears OS using model checking and proof. +It computation for reliability execute meta level computation against normal level computation. +This meta computation provides extensibility such as data expansion and switch environment by CPU and GPU. + +Task of Gears OS express by Code Gear and Input/Output Data Gear. +Solve Task dependency by Input/Output Data Gear, execute Code Gear if Input Data Gear completed. + +Task is created by Parallel execution syntax, after then execute Code Gear by sent Task from TaskManager to CPU, GPU Worker. + +In this paper, we describe concept of Gears OS and implementation of parallelism execution structure. \end{abstract_eng} diff -r 131b1274cbae -r ed207d6c511a paper/evaluation.tex --- a/paper/evaluation.tex Wed Feb 07 20:03:24 2018 +0900 +++ b/paper/evaluation.tex Thu Feb 08 04:23:21 2018 +0900 @@ -174,7 +174,7 @@ しかし、Gears OS は 1CPU での実行時間がOpenMP に比べて大幅に遅くなっている。 \section{Go 言語との比較} -Go 言語\cite{go} は Google社が開発しているプログラミング言語である。 +Go 言語 は Google社が開発しているプログラミング言語である。 Go 言語によるTwice の実装例を\coderef{go}に示す。 \lstinputlisting[caption=Go 言語での Twice, label=code:go]{./src/go.go} diff -r 131b1274cbae -r ed207d6c511a paper/introduction.tex --- a/paper/introduction.tex Wed Feb 07 20:03:24 2018 +0900 +++ b/paper/introduction.tex Thu Feb 08 04:23:21 2018 +0900 @@ -8,11 +8,12 @@ 本研究室では通常の計算をノーマルレベルとし、並列処理の信頼性をノーマルレベルの計算に対して保証し、拡張性をノーマルレベルとは別の階層のメタレベルの計算で実現することを目標に Gears OS\cite{kkb-master}を設計、開発中である。 Gears OS では処理を Code Gear、 データを Data Gear という単位を用いてプログラムを記述する。 -Code Gear には実行するときに必要な Input Data Gear、出力するための Output Data Gear があり、 この Input/Output Data Gear の関係から依存関係を決定し、 Input Data Gear が揃った Code Gear が並列に実行される。 +Code Gear は入力の Input Data Gear が揃ったら実行され、 Output Data Gear を出力する。 +この Input/Output Data Gear の関係から依存関係を決定し、Input Data Gear が揃った Code Gear が並列に実行される。 Gears OS のプログラムの信頼性の確保はモデル検査、検証を使用して行う。 この信頼性のための計算はメタ計算として記述される。 -このメタ計算は信頼性の他に CPU、 GPU などのアーキテクチャに沿った実行環境の切り替え、データの拡張等の拡張性を提供する。 +このメタ計算は信頼性の他に CPU、GPU などのアーキテクチャに沿った実行環境の切り替え、データの拡張等の拡張性を提供する。 メタ計算の処理は Meta Code Gear、 Meta Data Gear で表現する。 Meta Code Gear は 通常の Code Gear 間に実行される。 @@ -27,9 +28,9 @@ この stub Code Gear はメタレベルの計算であるため、継続先の Code Gear から自動的に生成されるのが望ましい。生成に必要な情報は Code Gear と Data Gear の集まりから得る。 この集まりを Interface として定義している。 Gears OS でのプロセス、スレッドは Context が担う。 -つまり、 並列実行する際は新しく Context を生成し、 それを CPU、 GPU に割り振る事によって実現される。 -生成された Context には実行される Code Gear と対応する Input/Output Data Gear が登録され、割り振られた先で Context に設定された Code Gear を実行する。 -このContext を用いた並列処理は新規に実行環境を作り、引数を設定するなどの煩雑なメタレベルの処理であり、ノーマルレベルでは Go 言語の goroutine のような簡潔な並列構文があることが望ましい。 +並列実行する際は新しく 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 の並列処理の評価を行う。