システム

2019年度 修士論文

VRシステム

VRの教育分野への応用,とりわけ新しい概念を学ぶためのチュートリアルのアプリケーションの高い有用性が研究で示されている。本研究では,AutowareTRYという自動運転車の理解支援のための車内VRシステムを開発した。AutowareTRYは実車内でVR映像やゲームを通じてエージェントがユーザーに自動運転車の仕組みを教えるというコンテンツである.本システムの評価のために,車内VRをセットアップした走行実験を行い,通常のVRとユーザエクスペリエンス、ワークロード、学習効果の比較を行った。測定の結果、ユーザーは総合的に車内VRの方を好んだ。
 

 



     

2018年度 修士論文

undoのデータ構造

状態を巻き戻す“undo”オペレーションは、ペイント・ソフトウェアやテキスト・エディタといった創作のためのソフトウェアだけでなく、例外やデータベースのロールバックなど、不確実な状況に対処するためのソフトウェア一般においてよく見られる操作である。これらのアプリケーションとそれらへの種々の拡張においては、「この世界の時計は1つ」という「絶対時間」のモデルに基づき、すべての状態は大きな1つの時計に結びついて管理され、巻き戻される。しかし、この「絶対時間」のモデルは1つしか時計を持たないため、不要なundo処理を引き起こしてしまう。本研究では「変数の全てが各々固有の時計を持つ」状態管理モデルと、そのためのデータ構造を提案する。本モデルでは、「変数」だけでなく、それを読み書きする「ユーザー」の側にも「時計」が存在する事を陽に扱うことで、既存の手法では表現が難しい「画面の部分領域を自由に巻き戻しできるペイントソフトウェア」のようなundoの表現が可能になる。
 

 



メニーコア向けCPU資源管理

省電力なコアを多数搭載したメニーコアアーキテクチャは、消費電力を抑えたいエッジデバイスとクラウドサーバの双方において活用が見込まれる中、現在のシステムソフトウェアの設計はアプリケーションの性能を最大限に引き出せずにいる。オペレーティングシステムの処理を行うためのアプリケーションの中断はアプリケーションプログラムのIPCを低下させるが、省電力なCPUコアはキャッシュ容量が少なくIPCの最大値も低いため、アプリケーションのスループットに大きな影響を与える。多くの研究者がシステムコールオーバーヘッドの削減について研究してきたが、システムコールオフローディングやバッチングといったこれらの研究はメニーコアアーキテクチャを想定しておらず、課題となっていた。本研究では、メニーコアアーキテクチャにおいてもスループット性能を低下させる事無く、アプリケーションのIPC低下を最小化するCPU資源管理手法を提案する。1コア1タスクと呼ばれるこのモデルは、コンテキストスイッチコストを削減するために各々のスレッドがコアを専有し、IPCを大幅に低下させる処理は他のコアへオフロードする事を可能にする。更に、このモデルを実現するために必要不可欠な、スケーラブルでリソースを有効利用する通信機構を提案する。
 

 



2019年度 学士論文

非対称マルチコア向けOS

エッジコンピューティングにおいて、リアルタイム性を保ちつつ非周期タスクへの応答性を高めることは,重要な課題の一つである。この目標を達成するための技術として、非周期タスクに対して専有的にCPUやメモリを割り振ることでオーバーヘッドを削減するという、マルチカーネルモデルを応用した技術が提案されている。しかし、当該先行研究において実行できるプログラムの種類は限定的であり、評価もいくつかの単純なシチュエーションに留まっている。当研究では、当該先行研究を拡張し、コアアイソレーションとメモリ割り当ての仕組みを改善することで、より広い範囲のプログラムを実行できるようにした。その結果、inuxにおいてはOSの負荷に対して最大12%発生していた性能の低下が、当研究のモデルにおいては最大3%程度に留まることが確認できた。

 

 

 



マルチコア上のDAGタスクシミュレーション

リアルタイムシステムにおいてスケジューラビリティ解析は関心の的である。シングルコアのリアルタイムシステムにおいてはすでにさまざまな既存の研究がなされているが、タスクの実行順序が予め制限されているDAGタスクシステムにおいてはさらなる研究が必要だ。DAGタスクシステムのスケジューラビリティを検証するにあたっては、実際のマシンでは割り込みや例外の影響をうけるので、ソフトウェア上でシミュレーションすることが有効である。この論文ではそれらの影響を受けないようなシミュレーターを実装しランダムなDAGタスクを用いて実験した。このシミュレーションによるパラメーター調整の結果プロセッサー使用率が高いケースにおいてはスケジュール成功率が16パーセント改善するという結果を得た。この論文の結果によってDAGシステムの改善とアルゴリズムの検証簡単にすることが期待される。

 

 

 



組み込みメニーコア向けシステムコールモデル

メニ―コアアーキテクチャでは軽量なコアが採用され消費電力が抑えられるため、エッジデバイスやクラウドサーバへの活用が期待されている。しかし各コアはキャッシュ容量が少なくIPCも低いため、オペレーティングシステムの処理によるコンテキストスイッチのコストがアプリケーションのスループットへ大きな影響を与える。このシステムコールオーバーヘッドの削減のために、各スレッドがコアを専有しIPCを大幅に低下させる処理は他のコアにオフロードするというCPU資源管理手法が、それを実現するScalableSCいう通信機構とともに提案されている。この手法はLinuxカーネルの修正を必要としないため様々なアーキテクチャへの互換性を持つ。当該先行研究ではx64アーキテクチャでの検証が行われている。本研究ではこの手法の有効性と互換性を確認するためARMアーキテクチャ上での検証を行った。Memcachedに負荷を追加すると、ScalableSCを使うことで最大10%の性能向上が見られた。

 

 

 



2018年度 学士論文

共有ランタイムによるユニカーネルのメモリ効率の向上

ライブラリオペレーティングシステムはクラウドに特化した単一目的のアプリケーションとともに注目が集まっている。特にユニカーネルは、アプリケーションとライブラリOSにより提供される機能をスタティックにコンパイルされ、仮想マシン上で動作することで、ソフトウェアスタックの軽量性とアプリケーション間の分離を同時に達成している。しかし、既存のユニカーネルの設計では、共通のランタイムや機能を共有しているにも関わらず、インスタンスでメモリが独立に使用され、メモリ資源が浪費されている。本論文では、ユニカーネル間で重複した資源を共通化する方法として、ライブラリOSの新しい設計を提案し、本手法によるメモリ資源の節約を示す評価を示す。
 

 



   
キャッシュを考慮したスプリットカーネル

分散オペレーティングシステムの目的の一つとして、ハードウェアの整備や部品交換といったデータセンターが抱える問題の解決というものがある。LegoOSは分散オペレーティングオペレーティングシステムに連なるもので、スプリットカーネルに基づいてハードウェアや部品をユニット単位に分割することに焦点を当てており、ハードウェアをpComponent(プロセッサー)、mComponent (メモリー)、sComponent (ストレージ)の3つに分類して認識している。pComponentはデータアクセスを高速化するために、Last Level Cazche(LLC)として仮想的にExCacheを持つ。しかしながらLegoOSの性能は従来のオペレーティングシステムほど良くはなく、一つの原因としてExCacheの性能が挙げられる。データセンターで使われるアプリケーションの中には逐次的、または、空間的な局所性をもつデータを多く扱うものがある。従来の単純なプリフェッチのアルゴリズムはそのようなデータを扱うのに適している。そこで、本研究ではプリフェッチの機能のLegoOSへの適用によるExCacheの性能の変化を評価した。

 

 



   
Unikernelプロセス間通信

複数のユーザに対してハードウェアリソースを提供するクラウドにおいて、そのリソース同士の分離性は重要な問題であり、仮想マシンという形で提供することで解決されることがある。これに関連して、Unikernelは一つのアプリケーションを仮想マシンとして展開する手法であるが、先行研究で提案されたUnikernel as Processでは、プロセスとしてUnikernelを動かせるようにすることで、高い分離性を保ったまま利便性を高めた。しかしながら、このデザインでは、外部とのインタフェースを大きく制限しており、その結果パフォーマンスも犠牲になっている。Unikernel間の高速な通信方法の欠如が、パフォーマンスの低下の一因としてあげられる。そこで本論文では、Unikernelのプロセス間で分離性を損なわずにメモリの共有を可能にする、Unikernelプロセス間通信の手法を提案する。具体的には、Unikernelプロセスは、仲介者プロセスに共有メモリオブジェクトの作成を依頼し、そのハンドルを受信した後、共有メモリをマップする。

 

 



   
スキャンマッチング用連立方程式ソルバ

スキャンマッチングアルゴリズムは自動ロボットや自動運転など、自動制御のアプリケーションにおいて使われる機会が拡大している。したがって、スキャンマッチングの仕組みについてそのハードウェア上での実装を考えることには価値がある。そのとき、実装においてスキャンマッチングの前処理として連立方程式を解くことが必要となる。よってこの論文では、スキャンマッチングアルゴリズム全体のハードウェア実装を見据え、連立方程式を高度に並列化して解く手法を提案する。この手法はガウスの消去法に基づいており、それぞれの行列要素に対応する演算が一つのプロセッサーエレメントによって実行されることで、高度な並列性が実現される。ASICでの実装を見据えたプロトタイプをFPGAに実装した。



 

2017年度 学士論文

ROSスケジューラ

自動運転のようなリアルタイムシステムでは時間制約を満たしつつ、依存関係のあるタスクをスケジューリングする必要がある。この依存関係を有向非巡回グラフ(DAG:Directed Acyclic Graph)に適用することで、一つのDAGタスクとして扱うことができる。しかし、個々のタスクを優先度によりスケジューリングする場合、重要なタスクの時間制約を満たすことは困難である。著者は、グルーピングを用いたDAGタスクのリアルタイムスケジューリングフレームワークを提案する。提案スケジューリングフレームワークは、個々のタスクの時間制約ではなくグループ単位の時間制約を優先することで、重要なタスクの時間制約を満たすことができる。Robot Operating SystemのリアルタイムスケジューリングフレームワークであるROSCHを改変することで、従来のスケジューリングより多くの重要なタスクのデッドラインミスを削減することを示す。

 

 

 



非対称マルチコア向けOS

同一の命令セットをもつ、計算性能に重点をおいた「大のコア」と、電力効率に特化した「小のコア」を組み合わせた非対称マルチコアアーキテクチャは、要求される負荷の範囲が広いシステムにおいて重要になっている。このアーキテクチャ上で全体のスループットを改善するため、従来、スレッドスケジューラに関する研究がおこなわれてきた。しかし、このアプローチでは、スケジューリングやタスクマイグレーションによるオーバーヘッドが問題になる。本研究では”the multikernel” モデルを取り入れたオペレーティングシステム(OS)設計を提案する。大のコアや他の計算資源をアイソレーションし、高速化したいプロセスに専有的に割り当てる。これにより、スケジューリングやタスクマイグレーションによるオーバーヘッド、および共有資源へアクセスする際の排他制御を回避し、スループットを改善する。著者は提案するOS 設計をARM big.LITTLE アーキテクチャの実機上に実装し評価した。評価の結果、共有資源に頻繁にアクセスするプロセスにおいてスループットの改善が見られた。

 

 

 

 



     

SLAMアクセラレータ設計

3次元スキャンのマッチングは空間内での自己位置推定を行う有効な手法である。効率的な手法として知られる3D-NDTは入力点の数N に依存しO(N)でマッチングを計算できる。入力点群はレーザーレンジファインダーによるスキャンで得られ、その解像度は増加傾向にある。また、高速に移動する物体が自己位置推定を行う場合、ミリ秒オーダーのターンアラウンドタイムが要求される。自己位置推定はロボットや自動車などのモバイルデバイスに要求されることが多いが、これらは消費電力の制限が大きい。現在、CPUやGPUを用いたNDTの実装が存在するが、計算能力や消費電力を組み込み機器に適した形で導入することは難しい。本研究では、NDTのハードウェア化を目指す上で扱うデータ量を減らしても精度が保たれることを示した。将来的には、本結果がASICの生成へ応用されることが期待される。

 

 

 

 



     

2016年度 学士論文

メニーコア向けOS

次世代のプロセッサアーキテクチャとして期待されている、メニーコアに対する研究を行っています。OSやデバイスドライバといったシステムプログラムの観点から、メニーコア上でのスケーラビリティの検証と、更なる性能向上を模索する事が主なテーマです。現在はIntel Xeon Phi Knights Landingに代表される、タイル構造のメニーコアアーキテクチャに対象を絞って研究を進めています。