Presentation is loading. Please wait.

Presentation is loading. Please wait.

Virtualizing a Multiprocessor Machine on a Network of Computers

Similar presentations


Presentation on theme: "Virtualizing a Multiprocessor Machine on a Network of Computers"— Presentation transcript:

1 Virtualizing a Multiprocessor Machine on a Network of Computers
金田憲二 大山恵弘  米澤明憲 東京大学 JST

2 背景 複数の分散した計算資源の利用  分散資源を効率的かつ簡便に利用したい 例)クラスタ上で並列計算 それでは発表を始めます。
まず、研究の背景ですが、近年では、PCの価格の低下やネットワーク技術の進化に伴い、多くの人が複数の分散した計算資源を利用するようになってきています。 例えば、もっとも一般的な例の一つとしては、クラスタの利用などが挙げられれます。これは、廉価なPCを複数集めて、それらをネットワークでつなげて、その上で科学技術計算などを並列に行い、低コストで高スループットを達成するというものです。 そして、当然のこととして、こうした分散した計算資源というものを日常的に利用するようになるにつれて、 より簡便かつ効率的に計算資源を利用したいという欲求が生じてきます。

3 分散資源の利用における問題 既存のシステムは色々とあるが…  利用には困難が伴う Globus、Condor、LSF、Plan9、…
既存のアプリケーションとの整合性が悪い 煩雑な設定・操作を必要とする そうした分散資源を効率良く利用したいという欲求に答えるため、数多くの研究がなされてきています。 例えば、SSHであるとかGlobusであるとかいったシステムが実際に研究・開発され、人々に使われてきています。 しかし、こうした既に開発されたシステムだけで十分かというと、必ずしもそうとは言えません。 そうしたシステムも、依然としていくつかの問題があり、利用には困難が伴います。 例えば、問題の一つとしては、既存のアプリケーションとの整合性が悪いことが挙げられます。 既存の並列プログラムを走らせることが不可能であったり、たとえ走らせることが可能な場合であっても、ソースコートの改変や、システムの提供するライブラリとの再リンクが必要であったりする場合が多くあります。 また、別の問題としては、システムの習熟にかかる手間が多大であることが挙げられます。 例えば、システムをインストールする際に煩雑な設定を必要としたり、 利用に際して、システムの提供する独自のインターフェースに習熟する必要があったりします。

4 本研究の目的 分散資源の効率的かつ簡便な利用 既存の並列プログラムを無変更で実行できる 煩雑な設定・操作を必要としない
そこで、本研究の目標として、分散資源をより効率的かつ簡便に利用可能にすることを目指します。 より具体的には、なるべく既存のプログラムを改変することなく動作させることを可能にし、 また、ユーザがなるべく分散環境を意識せずに済み、システムの習熟に手間のかからないようにすることを目指します。

5 アプローチ 仮想マシンモニタの技術を用いる 実マシンと同等の処理が可能な仮想マシンを ソフトウェアでエミュレーション
実マシンと同等の処理が可能な仮想マシンを  ソフトウェアでエミュレーション この目標を実現するために我々がとるアプローチですが、我々は仮想マシンモニタという技術を利用して、目標を実現します。 仮想マシンモニタというのは、VMWare workstationのようなものをイメージすると分かり易いのですが、マシンと同等の処理仮想マシンをソフトウェアでエミュレーションするものです。 例えば、仮想マシンモニタは、Linuxの走っている実マシン上に仮想マシンを構築し、その仮想マシン上でWindowsを走らせることなどが可能です。 この仮想マシンモニタというものを、本研究では分散資源を効率的に扱うために利用します。

6 提案システム ~ Virtual Multiprocessor ~
複数の分散した計算機上に                     SMPを仮想的に構築する仮想マシンモニタ N台のシングルプロセッサマシン 仮想化 具体的どういった仮想マシンモニタを作成するかということなのですが、 このスライドに書かれているようなものを作成します。 我々の仮想マシンモニタは、複数の分散した計算機上にSMPマシンを仮想的に構築します。 例えば、このシステムは、シングルプロセッサマシンがN台与えられた時、NプロセッサからなるSMPマシンを仮想的に構築します。 ユーザは、この仮想SMPマシンの上で何かOSを走らせて、そのOS上でコマンドやプログラムの実行を行います。 Nプロセッサからなる仮想SMP

7 なぜ一台のSMPにみえると うれしいのか SMP用の並列プログラムをそのまま実行できる ユーザは分散環境を意識する必要がない
例)make、シェルスクリプトによる並列実行                       ユーザは分散環境を意識する必要がない 個々のマシンの設定(OSのバージョンなど)を     意識する必要がない では、なせこのシステムで分散資源を効率的に利用することが可能になるのか、なぜ複数のPCが一台のSMPに見えるとうれしいかということなのですが、ここに挙げられているような利点があります。 まず、第一に、SMP用の並列プログラムをそのまま実行できるという利点があります。 例えば、makeやシェルスクリプトを使って、複数プロセスを立ち上げるだけで、並列処理を簡単に記述、実行することができます。 そして、第二の利点としては、ユーザは分散環境を意識せずに、計算資源を利用できるという点があります。 例えば、自分が使おうとしている個々のマシンのIPアドレスやOSのヴァージョンなどの設定を、ユーザは気にする必要がありません。

8 システムの動作例 2台のシングルプロセッサマシン上に デュアルプロセッサマシンを仮想的に構築 SMP用Linux
2台のシングルプロセッサマシン上に     デュアルプロセッサマシンを仮想的に構築 SMP用Linux 発表の残りの時間で、システムがどう動作するかについて、具体例を通して説明します。 例えば、このスライドにあるように、2台のシングルプロセッサマシンが与えられているとします。 このとき、我々のシステムは仮想的にデュアルプロセッサマシンを構築することができます。 そして、仮想デュアルプロセッサマシン上で、例えばSMP用のLinuxを動作させることができます。

9 システムの動作例 makeによる並列処理 ゲストOSのスケジューラによって プロセスは各実マシンに割り当てられる make -j プロセス
そしてユーザは、この仮想マシン上で動作するLinuxからコマンドを実行します。 例えば、Linuxからmakeコマンドを実行することによって、並列処理を行うことができます。 makeコマンドによって生成されたプロセスは、OSのスケジューラによって各プロセッサに割り当てられて、 最終的にはそれぞれのプロセッサをエミュレーションする別々のPCによって実行されます。 PC間での負荷分散もOSのスケジューラによって行われますので、効率的に処理することができます。 プロセス プロセス プロセス

10 現在の状況 ナイーブな実装が完了した ※アメリカのベンチャー企業が、ほぼ同様の システムを開発中(2004年12月プレスリリース)
オープンソースとして公開している   ※アメリカのベンチャー企業が、ほぼ同様の   システムを開発中(2004年12月プレスリリース) 差別化が重要 最後に現在の実装状況について説明します。 今現在、システムのナイーブな実装が完了し、オープンソースとして公開しています。 また、アメリカのベンチャー企業がほぼ同様のシステムを開発中であることが、昨年12月のプレスリリースで分かりました。 そのベンチャー企業が開発しているシステムの詳細は不明なのですが、今後はそれとの差別化を図っていきたいと考えています。

11 終 実装の詳細などについてはポスターで 以上で発表を終わります。 実装の詳細などについては、ポスターの場で説明したいと思います。
どうもありがとうございました。


Download ppt "Virtualizing a Multiprocessor Machine on a Network of Computers"

Similar presentations


Ads by Google