Mercurial > hg > Papers > 2022 > riono-master
changeset 59:ac5582e1aa2d
add poster slide
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Feb 2022 03:36:25 +0900 |
parents | c269b11bb810 |
children | 33591d662e9f |
files | Poster/riono-slide.html Poster/riono-slide.md |
diffstat | 2 files changed, 291 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Poster/riono-slide.html Fri Feb 18 03:36:25 2022 +0900 @@ -0,0 +1,224 @@ + + + + + +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="content-type" content="text/html;charset=utf-8"> + <title>継続を使用する並列分散フレームワークのUnity実装</title> + + <meta name="generator" content="Slide Show (S9) v4.1.0 on Ruby 2.6.3 (2019-04-16) [universal.x86_64-darwin19]"> + <meta name="author" content="Ryo Yasuda, Shinji Kono" > + +<!-- style sheet links --> +<link rel="stylesheet" href="s6/themes/projection.css" media="screen,projection"> +<link rel="stylesheet" href="s6/themes/screen.css" media="screen"> +<link rel="stylesheet" href="s6/themes/print.css" media="print"> +<link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> + +<!-- JS --> +<script src="s6/js/jquery-1.11.3.min.js"></script> +<script src="s6/js/jquery.slideshow.js"></script> +<script src="s6/js/jquery.slideshow.counter.js"></script> +<script src="s6/js/jquery.slideshow.controls.js"></script> +<script src="s6/js/jquery.slideshow.footer.js"></script> +<script src="s6/js/jquery.slideshow.autoplay.js"></script> + +<!-- prettify --> +<link rel="stylesheet" href="scripts/prettify.css"> +<script src="scripts/prettify.js"></script> + +<script> + $(document).ready( function() { + Slideshow.init(); + + $('code').each(function(_, el) { + if (!el.classList.contains('noprettyprint')) { + el.classList.add('prettyprint'); + } + }); + prettyPrint(); + } ); + +</script> + +<!-- Better Browser Banner for Microsoft Internet Explorer (IE) --> +<!--[if IE]> +<script src="s6/js/jquery.microsoft.js"></script> +<![endif]--> + + + +</head> +<body> + +<div class="layout"> + <div id="header"></div> + <div id="footer"> + <div align="right"> + <img src="s6/images/logo.svg" width="200px"> + </div> + </div> +</div> + +<div class="presentation"> + + <div class='slide cover'> + <table width="90%" height="90%" border="0" align="center"> + <tr> + <td> + <div align="center"> + <h1><font color="#808db5">継続を使用する並列分散フレームワークのUnity実装</font></h1> + </div> + </td> + </tr> + <tr> + <td> + <div align="left"> + Ryo Yasuda, Shinji Kono + 並列信頼研 + <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> + </div> + </td> + </tr> + </table> + </div> + + + +<div class='slide'> + +<!-- _S9SLIDE_ --> +<h2 id="オンラインゲームにおけるデータ通信">オンラインゲームにおけるデータ通信</h2> +<ul> + <li>ゲームの通信方式にはクライアントサーバ方式とp2p方式がある</li> + <li>データの安全性や通信環境などでクライアントサーバ方式が主流</li> + <li>サーバに接続して複数ユーザのデータ同期を実現させているため、低速</li> + <li>高速に通信を行たい + <ul> + <li>並列分散フレームワークChristieがある</li> + <li>ChristieはLAN上で高速に通信可能</li> + <li>TopologyManagerを使用することでLAN/WAN上で動的構築される</li> + </ul> + </li> + <li>ゲーム開発で主に使用されているUnityに対応するためにChristieをC#へ書き換えを行う</li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="christie">Christie</h2> +<ul> + <li>Christieは当研究室で開発している並列分散ライブラリ</li> + <li>Gearという概念を持っており、DataGearによるTake/Putを使用</li> + <li>クラスに相当するCodeGearとフィールド変数に相当するDataGearがある</li> + <li>CodeGearに記述されたDataGearが全て揃う(代入される)とCodeGearの処理が実行される</li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="unityにおけるネットワーク通信">Unityにおけるネットワーク通信</h2> +<ul> + <li>Unityは世界中で使用されているゲームエンジン</li> + <li>言語としてC#がサポートされている</li> + <li>フレーム単位の処理が行われ、シングルスレッドで動作しているため並列処理が苦手</li> + <li>Send/Recieveなどでは通信を記述しづらい</li> + <li>Christieにより画面書き換えと非同期な並列処理や通信が可能</li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="cへの書き換える利点">C#への書き換える利点</h2> +<ul> + <li>ChristieはJavaで実装されている + <ul> + <li>C#に書き換えを行うべきか</li> + </ul> + </li> + <li>JavaをC#上で呼び出す方式 + <ul> + <li>annotationが使用できない</li> + </ul> + </li> + <li>Unityはandroidの開発向けにjarファイルからJavaのメソッドをC#上で呼び出せる機能がある + <ul> + <li>stringを使用してリソースディレクトリから検索し、使用</li> + <li>高速化が求められる並列分散プログラミングには不適</li> + </ul> + </li> + <li>記述方法が似ているため移植が行いやすい</li> + <li>ThreadPoolをC#で統一できる</li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="cへ書き換えの方針">C#へ書き換えの方針</h2> +<ul> + <li>C#で記述するChristieをChristie Sharpとする</li> + <li>Christie設計時の意図や、互換性を保つためChristieと同じ動作をさせる</li> + <li>ChristieはJava9から開発されており、非推奨なコードやが含まれている</li> + <li>C#に対応しつつ、処理動作の向上や最適化を行うために以下の変更を行った + <ul> + <li>MessagePackのバージョンアップ</li> + <li>ThreadPoolからTaskへ変更</li> + </ul> + </li> +</ul> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="unityの動作">Unityの動作</h2> +<!--デモ?--> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="他の通信ライブラリと比較">他の通信ライブラリと比較</h2> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="まとめ">まとめ</h2> + + + +</div> + +<div class='slide'> + <!-- _S9SLIDE_ --> +<h2 id="今後の課題">今後の課題</h2> + + +</div> + + +</div><!-- presentation --> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Poster/riono-slide.md Fri Feb 18 03:36:25 2022 +0900 @@ -0,0 +1,67 @@ +title: 継続を使用する並列分散フレームワークのUnity実装 +author: Ryo Yasuda, Shinji Kono +profile: 並列信頼研 +lang: Japanese +code-engine: coderay + +## オンラインゲームにおけるデータ通信 +* ゲームの通信方式にはクライアントサーバ方式とp2p方式がある +* データの安全性や通信環境などでクライアントサーバ方式が主流 +* サーバに接続して複数ユーザのデータ同期を実現させているため、低速 +* 高速に通信を行たい + * 並列分散フレームワークChristieがある + * ChristieはLAN上で高速に通信可能 + * TopologyManagerを使用することでLAN/WAN上で動的構築される +* ゲーム開発で主に使用されているUnityに対応するためにChristieをC#へ書き換えを行う + +## Christie +- Christieは当研究室で開発している並列分散ライブラリ +- Gearという概念を持っており、DataGearによるTake/Putを使用 +- クラスに相当するCodeGearとフィールド変数に相当するDataGearがある +- CodeGearに記述されたDataGearが全て揃う(代入される)とCodeGearの処理が実行される + +## Unityにおけるネットワーク通信 +- Unityは世界中で使用されているゲームエンジン +- 言語としてC#がサポートされている +- フレーム単位の処理が行われ、シングルスレッドで動作しているため並列処理が苦手 +- Send/Recieveなどでは通信を記述しづらい +- Christieにより画面書き換えと非同期な並列処理や通信が可能 + +## C\#への書き換える利点 +- ChristieはJavaで実装されている + - C\#に書き換えを行うべきか +- JavaをC\#上で呼び出す方式 + - annotationが使用できない +- Unityはandroidの開発向けにjarファイルからJavaのメソッドをC\#上で呼び出せる機能がある + - stringを使用してリソースディレクトリから検索し、使用 + - 高速化が求められる並列分散プログラミングには不適 +- 記述方法が似ているため移植が行いやすい +- ThreadPoolをC\#で統一できる + +## C#へ書き換えの方針 +* C\#で記述するChristieをChristie Sharpとする +* Christie設計時の意図や、互換性を保つためChristieと同じ動作をさせる +* ChristieはJava9から開発されており、非推奨なコードやが含まれている +* C\#に対応しつつ、処理動作の向上や最適化を行うために以下の変更を行った + * MessagePackのバージョンアップ + * ThreadPoolからTaskへ変更 + +## Unityの動作 +<!--デモ?--> + +## 他の通信ライブラリと比較 + +## まとめ + +## 今後の課題 + + + + + + + + + + +