学位論文要旨



No 128450
著者(漢字) 下沢,拓
著者(英字)
著者(カナ) シモサワ,タク
標題(和) メニーコアシステムにおけるオペレーティングシステムの構成
標題(洋) Operating System Organization for Manycore Systems
報告番号 128450
報告番号 甲28450
学位授与日 2012.03.22
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第361号
研究科 情報理工学系研究科
専攻 コンピュータ科学専攻
論文審査委員 主査: 東京大学 教授 清水,謙多郎
 東京大学 教授 須田,礼仁
 東京大学 教授 本位田,真一
 東京大学 教授 近山,隆
 東京大学 准教授 田浦,健次朗
内容要旨 要旨を表示する

Manycore processors, which have tens or hundreds of cores, have emerged to gain computing capacities by increasing parallel computing capacities. There are two possible forms of utilization of manycore processors in computing clusters: one is that manycore processors work as the main CPU in a node, and the other is that they are employed as accelerator in addition to the host multicore processors. The former style is considered to be a natural extension of the current multicore clusters, where the number of the cores increases largely. It is assumed that all the memory and processors are connected with lower-latency inner interconnects in this case. The latter has multicore host CPUs and manycore accelerators connected with each other by generic I/O buses. The host CPUs have relatively higher single-core performance and larger cache and faster memory buses compared to manycore processors.

There are three issues to design operating systems for such systems. One is the scalability of the operating system kernel when the number of the processor cores increases, which is important especially in the former case, where the manycore processors must manage the operating system services and I/O processing by their own. Another is the cache pollution caused by the operating system kernel since the manycore processors are relatively sensitive to cache misses compared to multicore processors. The other is only for the latter case; the memory spaces of host CPUs and accelerators are separate and that it is difficult to run existing operating systems, which assume cache-coherent shared memory.

In this thesis, we propose two forms of operating systems for manycore systems to mitigate these issues. First, SHIMOS (Single Hardware with Independent Multiple Operating Systems) is proposed for use in the former system. It partitions the machine by multiple kernels to reduce the number of processors running to alleviate contentions. It has zero-copy communication mechanism between the kernels to allow all the kernels to access the devices. Second, HIDOS(Host Inter-kernel Delegation Operating System) is presented for use in the accelerator system. It executes a commodity operating system kernel in the host processors and small kernels in the accelerator processors to alleviate cache pollution by delegating the system services on accelerators to the kernel in the host. It is based on several abstraction layers to enable development of operating systems without any target accelerators, to serve one-copy inter-kernel communication, and to realize the delegation mechanism on it.

The design and implementation of SHIMOS and HIDOS on Linux in x86 commodity servers are presented in this thesis. SHIMOS is evaluated to demonstrate that it achieves partitioning with almost no overhead and runs I/O-loaded benchmarks faster than a single Linux by reducing contentions. HIDOS is also evaluated in the emulated environment on the commodity server and shows that it reduces cache pollutions and performs better in parallel applications with system calls compared to a single Linux.

審査要旨 要旨を表示する

本論文は、今後利用が一般化すると考えられるメニーコアプロセッサを用いた計算機について、二つの形態を想定し、それぞれの環境に対して、既存のオペレーティングシステムを適用した場合に発生するスケーラビリティやキャッシュミスの増加などの問題を明らかにするとともに、これらを緩和する手法を提案し、その有効性を実証したものである。具体的には、最小限のオーバーヘッドでソフトウェアによって計算機の分割管理を行う手法と、オペレーティングシステムのシステムコールの委譲を行う手法を提案し、その設計、実装と評価について述べている。

本論文は7つの章から構成される。第1章は、序論であり、本研究の背景と問題設定について論じられている。現在のプロセッサの傾向としてはコア数が増大していく傾向にあり、メニーコアプロセッサと呼ばれる多くのコアを持った計算機が今後の主流となると考えられ、その利用方法として、(1)サーバーなどで用いられる単独型と(2)計算機クラスタで用いられるアクセラレータ型を想定している。単独型の場合では既存のマルチコアシステムと同様に、アクセラレータ型の場合では自身でI/O処理を行うために、ともにオペレーティングシステムが必要である。これらのシステムに対して既存のオペレーティングシステムを適用するに当たっての問題点として、カーネルのスケーラビリティ、カーネルによるキャッシュミス、アクセラレータ型におけるI/Oバスの存在を列挙している。これらを緩和する方法として、計算機の分割をカーネルによって行うSHIMOSと呼ぶ手法、アクセラレータからのシステムコールをホストへ委譲するHIDOSと呼ぶ手法の提案を行っている。

第2章は、背景として、本論文の対象としているメニーコアアーキテクチャ及び想定されるアプリケーション、提案しているオペレーティングシステムに対する要件についての議論を行っている。

第3章では、単独型向けであるSHIMOSの設計と実装について述べている。これは複数のカーネルを一つの計算機上で動作させて分割を行うことにより、全体としてのカーネルのスケーラビリティを向上させるものである。分割によって新たなオーバーヘッドが生じるのを避けるために、SHIMOSはカーネルを直接修正し、ソフトウェアのみによるオーバーヘッドのない分割を達成している。また、計算機上のデバイスといった資源の共有を行うために、仮想デバイスとそれを実現するためのカーネル間通信機構を提供している。第3章では、分割という手法をとることの問題点の議論とともに、SHIMOSの設計とx86アーキテクチャのLinuxでの実装について記述している。

第4章では、アクセラレータ型に向けた提案手法であるHIDOSの設計と実装について述べている。これは、ホストに既存の汎用オペレーティングシステムを用い、アクセラレータ上でシステムコールをホストに委譲することによって、カーネルによって発生するキャッシュミスを低減するものである。その際に、I/Oバス間での転送コストを減らすために、DMAの利用を行っている。また、メニーコアアクセラレータのない環境での開発及び評価のために、高速な模擬環境を提供し、実機と模擬環境ともに動作するカーネルとするための抽象化層を設計し、これらのシステムの実装を行っている。

第5章で、第3章と第4章で設計実装を示した提案手法の評価を報告している。SHIMOSにおいては、仮想機械を用いた手法との間で、システムコールやI/Oを用いるアプリケーションを動作させた場合の性能の比較を行っており、提案手法ではオーバーヘッドがないことを示している。さらに、カーネル内でのプロファイリングを使った方法により、SHIMOSがカーネル内での競合を減らし、スケーラビリティを向上させたことを示している。HIDOSにおいては、第4章で提案した模擬環境を用い、並列アプリケーションを用いた実験で、システムコールによるキャッシュミスを低減させたことを示した。

第6章は、計算機の分割やカーネル間通信、カーネルのスケーラビリティ向上といった側面から関連研究についてまとめている。第7章では、論文全体の内容をまとめ、今後のシステムソフトウェア分野における課題について論じている。

本論文で提案した手法は、メニーコアプロセッサを用いた計算機における問題点を緩和することを明らかにしており、今後の高性能計算機の効率向上に貢献すると考えられる。さらに、カーネル間通信や委譲機構といったソフトウェア基盤技術は、将来にわたり、システムソフトウェアにおいて有用性が期待されるものであり、関連分野の研究に対して貢献があると認められる。

よって本論文は博士(情報理工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク