comparison presen/slide.md @ 35:7c5d27175aa4 default tip

fix
author ikkun
date Tue, 16 May 2017 16:19:47 +0900
parents cba85e3b73e3
children
comparison
equal deleted inserted replaced
34:cba85e3b73e3 35:7c5d27175aa4
5 code-engine: coderay 5 code-engine: coderay
6 6
7 # 研究目的 7 # 研究目的
8 - 当研究室では 処理の単位を Code Gear、 データの単位を Data Gear を用いて 信頼性が高い並列処理を行う Gears OS を開発している 8 - 当研究室では 処理の単位を Code Gear、 データの単位を Data Gear を用いて 信頼性が高い並列処理を行う Gears OS を開発している
9 - Gears OS では Task を Code Gear が実行するときに必要な Input Data Gear と出力の Output Data Gear の組で表現される。 Input Data Gear/Output Data Gear によって依存関係が決定し、それにそって並列実行を行う. 9 - Gears OS では Task を Code Gear が実行するときに必要な Input Data Gear と出力の Output Data Gear の組で表現される。 Input Data Gear/Output Data Gear によって依存関係が決定し、それにそって並列実行を行う.
10 - 信頼性の確保はモデルチェック、検証等を使用して行う。この信頼性のための計算は通常の計算とは別の階層のメタ計算として記述する。 10 - 信頼性の確保はモデルチェック、検証等を使用して行う。この信頼性のための計算は、通常の計算とは別の階層のメタ計算として記述する。
11 - また、 メタ計算は信頼性の他に CPU, GPU などの実行環境の切り替え, データ拡張等の柔軟性を提供する。 11 - また、 メタ計算は信頼性の他に CPU, GPU などの実行環境の切り替え, データ拡張等の柔軟性を提供する。
12 - 本研究では、 Gears OS の並列処理機構の実装を行う。また、並列処理の実行の検証をメタ計算として記述することで、 並列処理の精度を保証する。 12 - 本研究では、 Gears OS の並列処理機構の実装を行う。また、並列処理の実行の検証をメタ計算として記述することで、 並列処理の精度を保証する。
13 13
14 # メタ計算を使った並列処理 14 # メタ計算を使った並列処理
15 15
120 - Code Gear を実行した後は出力される Output Data Gear から依存関係を解決する 120 - Code Gear を実行した後は出力される Output Data Gear から依存関係を解決する
121 <div style="text-align: center;"> 121 <div style="text-align: center;">
122 <img src="./fig/gears_structure.svg" alt="message" width="600"> 122 <img src="./fig/gears_structure.svg" alt="message" width="600">
123 </div> 123 </div>
124 124
125 # GPGPU 125 # CUDA
126 - もともとは画像出力や画像編集などの画像処理に用いられるGPUを画像処理以外に利用する技術のこと 126 - CUDA とは NVIDIA 社が提供している並列コンピューティング用の統合開発環境である。
127 - コンパイラ、ライブラリなどの並列コンピューティングを行うのに必要なサポートを提供している。
128 - CUDAを利用することで、もともとは画像出力や画像編集などの画像処理に用いられるGPUを画像処理以外に利用することができる
127 - GPUにはCPUに比べ多数のコアがあり、並列に処理することによってCPUよりも高速に処理を行うことができる 129 - GPUにはCPUに比べ多数のコアがあり、並列に処理することによってCPUよりも高速に処理を行うことができる
128 - CPUに比べ複雑な計算ができない、GPU単体に直接命令を書き込むこともできないなど、問題点も存在する。 130 - CPUに比べ複雑な計算ができない、GPU単体に直接命令を書き込むこともできないなど、問題点も存在する。
129 131
130 # CPUWoker 132 # CUDAWoker
131 - Worker thread で動くTaskスケジューラーである。 133 - Worker thread で動くTaskスケジューラーである。
132 - synchronized queue からTask の List を読み込み実行する。 134 - CUDAのライブラリの初期化を行う。
135 - GPU へのデータ転送及びGPU側でのTaskの実行はTaskのMeta Code Gear で行われる。
133 - Data Gear の待ち合わせ管理を行う。 136 - Data Gear の待ち合わせ管理を行う。
134 - CPU Worker はreceive Task というAPI を持ち、Taskがなくなるまで繰り返す。 137 - receive Task というAPI を持ち、Taskがなくなるまで繰り返す。
135
136 # CUDAWoker
137 - CPUWoker を再利用して作成するTask スケジューラー
138 - CUDA ライブラリの初期化を行う以外の動作はCPUWoker と全く同じとなる。
139 - GPU へのデータ転送及びGPU側でのTaskの実行はTaskのMeta Code Gear で行われる。
140 138
141 <!-- 139 <!--
142 # CbC による Gears OS 記述の問題 140 # CbC による Gears OS 記述の問題
143 141
144 - Gears OS を CbC で実装する上でメタ計算の記述が煩雑であることがわかった。 142 - Gears OS を CbC で実装する上でメタ計算の記述が煩雑であることがわかった。