Distributed Systems Lab
 分散システム学研究室

2020年度卒研テーマ案

A. 輻輳を誘発しにくい平均距離最小ネットワークの設計

高性能な並列コンピュータを実現する上で重要な課題の一つに,ネットワークトポロジーの設計問題があります. 現実のシステムでは,システムを構成する各ノードの次数(隣接ノード数)は, システム全体のノード数(例えば1000とか10000)とは無関係な定数(例えば8とか16)で抑えられます. 並列コンピュータの設計時には,そのような次数制約のもとで,ノード間の通信ができるだけ高速に行えるように ネットワークトポロジーを構成する必要があります.この問題には長い歴史があって,多くの 研究成果の蓄積があるのですが, このテーマでは,輻輳の起きづらさを考慮した問題の定式化を行い, 新しい解法の提案とシミュレーションによる評価を行います.参考文献としては, これなどがあります (複雑系とも関係がある).動機の一つは並列コンピュータの設計ですが,ここで得られた結果は, P2P型ビデオカンファレンスシステムの配信オーバーレイの設計や,交通網や流通網の設計などにも応用できると思います.

B. 多人数ゲームとしての並列ダウンロード問題

大規模ファイルのダウンロードに使われる技術の一つに並列ダウンロードがあります. 対象となるファイルを複数のセグメントに分割しておき,サーバとの間に複数のコネクションを張って セグメントを並列に取得する,というのがその基本的な考え方です (クライアントのコアが並列に動作する分だけダウンロード時間が短縮される). このアイデアをさらに推し進めて,サーバだけからではなく 他のクライアントから取得済みのセグメントをダウンロードするようにしたのがBitTorrentです. ただしこの仕組みには,如何にして各クライアントの貢献を促すかという重要な未解決課題があります (誰でも,もらうのは好きだけれどもあげるのは嫌だろうし...). この状況を一種の多人数ゲームとしてモデル化し,ゲームのルールを決めてその分析をするところまでが このテーマです.ちなみにBitTorrentで使われているしっぺ返し戦略は 全然良くありません. また 最適戦略を強化学習で獲得しようという試みもあります.

C. IPN(惑星間インターネット)のための運行スケジューリング設計問題

SFじみていると感じる人がいるかもしれませんが, 惑星間インターネット(IPN)という概念が2002年に提案されています. 基本アイデアは,ノード間の距離が離れすぎると直接的な無線通信ができなくなるため, メッセージをバッファリングしたドローン(のようなもの)を物理的に移動させることで, 遠隔地へのメッセージ配信を実現しようというものです(彼方のアストラの世界だと思っていたけれども,ガンダムの ミノフスキー粒子が 引き起こす世界は実はこれですね...). このテーマで考えたいのは,そのようなドローンの運行計画です(ひとまず巡回軌道だと思うことにしましょう). ドローンが1台の場合,最短の運行ルートは巡回セールスマン問題の解になるので, これまでに知られている結果がそのまま適用できます. しかし2台以上の場合にどのように運行計画を立てれば良いのかはよくわかっていません (接近したドローン間での乗換なども可能なので自由度は結構高い). 得られる結果は,バス路線の設計問題などにも応用できます.

D.Bluetoothメッシュを使った遠隔ボイスチャットシステム

最近のWi-Fiルータは,メッシュ状につなぐことで広い範囲をカバーできるようになっているものが多い のですが(例えばGoogle Nest Wi-Fiなど),同様の拡張は,AirPodsなどで使われている Bluetoothに対してもなされています.Bluetooth meshという規格がそれです. この規格を使うことで,例えば同一フロアのLED照明を一斉に点灯・消灯させることなどができるようになります. ただし(ON/OFFなどの)メッセージはEpidemicにfloodingされるだけで,宛先を指定したルーティングは 定義されていません(とりあえず全員に伝え,自分が宛先に含まれていれば取り込む形). このテーマでは,Bluetoothメッシュを使って遠隔ボイスチャットシステムを実現します. ただし音声ストリームをそのままのせるのは難しそうなので(カタログ上は,Bluetooth 5.0の推奨通信レートは10 Kbpsで, VoIPでよく使われる音声符号化規格であるG.729のビットレートは8 Kbps), 音声ファイルを(例えばMIMEで)転送してはどうかと考えています.

E. モーションキャプチャを用いた遠隔コーチングシステム

YouTube Liveなどのライブ配信システムでは, 配信者が撮ったライブビデオをWebRTCでサーバにアップロードし, それをサーバ上でHLS(HTTP Live Streaming) 形式に変換したものをCDN経由でクライアントに配信する という仕組みが使われています.このとき, 配信者からサーバまでの通信にはWebRTCのメディアチャネルが 使われていますが,その代わりにデータチャネルを使うようにすれば, 例えばモーションキャプチャシステムによって取得された モーションデータのストリームを 他のユーザにピアツーピアに配信することも可能になります (サーバを使っても良いのだけれど,そうするとどうしても 遅延が発生してしまう). このテーマでは,上記のような仕組みを使って, ダンスの遠隔コーチングシステムを実現していきます. 生徒とコーチが音楽に合わせてダンスをしている様子を 仮想空間に表示して見せることで,広島県の高校生が 海外のプロのレッスンをリアルタイムに受けることが できるようになります.クライアントから受け取った データストリームをアバターのダンス動画に変換する部分 については,Unityを使えばできるはずです.例えば こんな感じです.

F. Kubernetesを使ったコンテナ型仮想化システム

フォグコンピューティングという処理の枠組みは, 各ユーザの近くに小さなデータセンター(フォグノード)を設置し, クラウド上で実行されている処理のうち, 素早い応答性が求められる処理を フォグノードに適宜オフロードすることによって, 負荷の分散化と低遅延化を両立させようというものです(それとは別にIoTなどでは, センサーで取得されたデータをクラウドにアップロードする前になされる前処理が, エッジノードと呼ばれるユーザ近くのサーバ上で実行されたりします).このような仕組みは, Google Stadia などのクラウドゲームにおける ユーザ体験の質向上に特に有効であると 考えられています. このテーマでは,そのようなクラウドとフォグノードの 間のタスクのやりとりをスムーズに行うための 技術の一つであるKubernetesに着目し,フォグコンピューティングの ための環境を実際に作ってみたいと考えています. KubernetesはDockerのようなコンテナ型仮想化システムの オーケストレーション用ソフトであり, 我々の目的に合致しています.

過去の説明文

参考のため,過去の説明文も残していきます.
2019年度用の説明文は こちらです.

↑ PAGE TOP