Mercurial > hg > Papers > 2017 > ikkun-sigos
changeset 1:26fce091af49
ADD mindmap
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 19 Apr 2017 21:47:35 +0900 |
parents | 38b037c42c34 |
children | 227ce8abda7e |
files | mindmap.mm |
diffstat | 1 files changed, 114 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mindmap.mm Wed Apr 19 21:47:35 2017 +0900 @@ -0,0 +1,114 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1492595350085" ID="ID_1525898828" MODIFIED="1492599509649" TEXT="Gears OS における並列処理"> +<node CREATED="1492596047155" ID="ID_834413412" MODIFIED="1492599521160" POSITION="right" TEXT="研究目的"> +<node CREATED="1492596132358" ID="ID_251539353" MODIFIED="1492596147777" TEXT="並列処理のプログラミングは信頼性の確保が難しい"/> +<node CREATED="1492596119497" ID="ID_1681814830" MODIFIED="1492596130777" TEXT="Code Gear, Data Gear を使った並列処理"> +<node CREATED="1492596155094" ID="ID_1650537256" MODIFIED="1492596171670" TEXT="Code Gear は Input された Data Gear 以外は触らない"/> +<node CREATED="1492596173008" ID="ID_1062219126" MODIFIED="1492596201999" TEXT="Code Gear は実行内容を Output Data Gear に書き出す"/> +<node CREATED="1492596205879" ID="ID_1257115080" MODIFIED="1492599432670" TEXT="Code Gear 間は継続処理でCode Gear を移動する"> +<node CREATED="1492596261229" ID="ID_1766491596" MODIFIED="1492596271454" TEXT="基本的には末尾呼び出ししかつかえない"> +<node CREATED="1492596233321" ID="ID_1043570655" MODIFIED="1492596258019" TEXT="functional な プログラミングスタイルを更に制約化する"/> +</node> +</node> +<node CREATED="1492599312541" ID="ID_736319416" MODIFIED="1492599323077" TEXT="Input と Output の関係から並列処理を行う"/> +<node CREATED="1492599411546" ID="ID_1634053755" MODIFIED="1492599421429" TEXT="Gode Gear "/> +</node> +<node CREATED="1492596298268" ID="ID_137287743" MODIFIED="1492596303427" TEXT="信頼性の確保"> +<node CREATED="1492596303787" ID="ID_1118780576" MODIFIED="1492596308410" TEXT="モデルチェッキング"> +<node CREATED="1492605188884" ID="ID_1336932146" MODIFIED="1492605199086" TEXT="single linked queue"/> +<node CREATED="1492605200092" ID="ID_53892540" MODIFIED="1492605203422" TEXT="RB tree"/> +</node> +<node CREATED="1492596309380" ID="ID_1272495779" MODIFIED="1492596311353" TEXT="型チェック"/> +<node CREATED="1492596313379" ID="ID_1955122588" MODIFIED="1492605181247" TEXT="検証"> +<node CREATED="1492605181848" ID="ID_1919079450" MODIFIED="1492605187311" TEXT="並列処理の検証とか"/> +</node> +<node CREATED="1492605456922" ID="ID_182000760" MODIFIED="1492605460226" TEXT="どう嬉しいのか?"> +<node CREATED="1492605492510" ID="ID_63268465" MODIFIED="1492605507032" TEXT="途中で止まらない"/> +<node CREATED="1492605507626" ID="ID_283430344" MODIFIED="1492605517815" TEXT="整合性がちゃんと取れる"/> +</node> +</node> +<node CREATED="1492596730763" ID="ID_1218431096" MODIFIED="1492596742679" TEXT="meta computation"> +<node CREATED="1492605534424" ID="ID_994501200" MODIFIED="1492605560799" TEXT="Gears では 信頼性を保証するために実行する計算"/> +<node CREATED="1492596742680" ID="ID_1927258639" MODIFIED="1492596762237" TEXT="実際に行う計算のための計算"> +<node CREATED="1492596844936" ID="ID_365246262" MODIFIED="1492596865626" TEXT="network 間でversion 違う場合の整合性"/> +<node CREATED="1492596763501" ID="ID_282207258" MODIFIED="1492596844321" TEXT="並列処理の依存関係"/> +<node CREATED="1492598757212" ID="ID_1026249711" MODIFIED="1492598772215" TEXT="モデルチェッキングや検証"/> +<node CREATED="1492599527749" ID="ID_1337410507" MODIFIED="1492599535142" TEXT="CPU, GPU の実行の切り替え"/> +</node> +<node CREATED="1492599338803" ID="ID_1764055121" MODIFIED="1492599390563" TEXT="Code Gearの接続間で meta Code Gear を用意し, そこで行う"/> +</node> +<node CREATED="1492605323614" ID="ID_322917596" MODIFIED="1492605361854" TEXT="依存関係のある並列処理の設計"/> +<node CREATED="1492605367168" ID="ID_1118914201" MODIFIED="1492605373124" TEXT="GPU での実行"/> +</node> +<node CREATED="1492596053460" ID="ID_1465968809" MODIFIED="1492596058101" POSITION="right" TEXT="Code Gear, Data Gear"> +<node CREATED="1492599501735" ID="ID_271825383" MODIFIED="1492599504167" TEXT="いつもの話"/> +</node> +<node CREATED="1492596059830" ID="ID_1673128762" MODIFIED="1492596069427" POSITION="right" TEXT="Gears OSの構成"> +<node CREATED="1492598873929" ID="ID_341820755" MODIFIED="1492598875273" TEXT="Context"> +<node CREATED="1492599273720" ID="ID_1145032049" MODIFIED="1492599302246" TEXT="CG のリスト"/> +<node CREATED="1492599280124" ID="ID_1742110158" MODIFIED="1492599304862" TEXT="DG のリスト"/> +<node CREATED="1492599284153" ID="ID_1876844818" MODIFIED="1492599312025" TEXT="DG の allocate"/> +<node CREATED="1492599605705" ID="ID_887878285" MODIFIED="1492599610261" TEXT="その他いろいろ"/> +<node CREATED="1492599614820" ID="ID_1536135754" MODIFIED="1492599619148" TEXT="Task も Context"/> +</node> +<node CREATED="1492598864406" ID="ID_1687880423" MODIFIED="1492598866691" TEXT="TaskManager"> +<node CREATED="1492599734061" ID="ID_653944383" MODIFIED="1492599741953" TEXT="Task Create"/> +<node CREATED="1492599742553" ID="ID_647849311" MODIFIED="1492599747095" TEXT="Workers Create"/> +<node CREATED="1492600814806" ID="ID_1329759540" MODIFIED="1492600824176" TEXT="Send Task to workers"/> +<node CREATED="1492600828953" ID="ID_1336439792" MODIFIED="1492600843776" TEXT="set wait List for task"> +<node CREATED="1492600846389" ID="ID_368998292" MODIFIED="1492600897116" TEXT="task"/> +</node> +</node> +<node CREATED="1492598867265" ID="ID_1489374859" MODIFIED="1492598868395" TEXT="Worker"> +<node CREATED="1492598880377" ID="ID_1745477396" MODIFIED="1492598921303" TEXT="Worker 毎に 実行するTaskが入っている synchronized queueをもつ"/> +<node CREATED="1492598923368" ID="ID_114619867" MODIFIED="1492598937775" TEXT="TaskManager から task が sendされる"/> +<node CREATED="1492598940541" ID="ID_353413891" MODIFIED="1492598945485" TEXT="実際にTaskを処理する"/> +<node CREATED="1492603356876" ID="ID_1796895384" MODIFIED="1492603398977" TEXT="Task を処理した後, そのTaskで出力されたODS をcommit(依存関係の解決)する"/> +</node> +<node CREATED="1492598869771" ID="ID_970395828" MODIFIED="1492598873441" TEXT="Task(Context)"> +<node CREATED="1492599612932" ID="ID_617828246" MODIFIED="1492599636562" TEXT="Task は Context として生成される"/> +<node CREATED="1492599638427" ID="ID_1375136309" MODIFIED="1492599653963" TEXT="接続される idg の一覧"/> +<node CREATED="1492599654300" ID="ID_1194751010" MODIFIED="1492599661731" TEXT="出力用の odg の一覧"/> +<node CREATED="1492599664019" ID="ID_1727716436" MODIFIED="1492599692418" TEXT="持っている idg のカウント"/> +</node> +<node CREATED="1492605215716" ID="ID_1716718969" MODIFIED="1492605222054" TEXT="Rb_Tree(Jungle)"> +<node CREATED="1492605222055" ID="ID_589981017" MODIFIED="1492605273760" TEXT="persistent な data を書き出す"/> +<node CREATED="1492605282894" ID="ID_1687627848" MODIFIED="1492605286696" TEXT="この話する?"/> +</node> +</node> +<node CREATED="1492596070507" ID="ID_1939634878" MODIFIED="1492603275648" POSITION="right" TEXT="依存関係の解決"> +<node CREATED="1492601718132" ID="ID_1541948545" MODIFIED="1492604371573" TEXT="DG がそのDG を待っているtaskのqueueを持っている(wait List)"/> +<node CREATED="1492604429601" ID="ID_1333930997" MODIFIED="1492604446500" TEXT="Output DG に書き込まれると, commit する "> +<node CREATED="1492603275649" ID="ID_22296542" MODIFIED="1492603344062" TEXT="idgCount が0になると, 待っている input DG が用意できたので、taskを 実行するworker に sendする"/> +<node CREATED="1492601759983" ID="ID_1738189652" MODIFIED="1492603066632" TEXT="Worker は Taskを実行した後, そのqueueを取り出し, TaskのidgCount をデクリメントする"/> +</node> +<node CREATED="1492604387355" ID="ID_339208879" MODIFIED="1492604418851" TEXT="Gears/doc/dependency.graffle 参照"/> +</node> +<node CREATED="1492596290291" ID="ID_71435553" MODIFIED="1492596291843" POSITION="right" TEXT="GPU"> +<node CREATED="1492599486150" ID="ID_1589346879" MODIFIED="1492599494680" TEXT="いっくんの論文"/> +<node CREATED="1492604042661" ID="ID_426423186" MODIFIED="1492604044280" TEXT="Cmake?"/> +<node CREATED="1492604044696" ID="ID_968432973" MODIFIED="1492604050016" TEXT="CUDA Worker"/> +</node> +<node CREATED="1492599399002" ID="ID_1584696007" MODIFIED="1492599405083" POSITION="right" TEXT="並列実行のAPI"> +<node CREATED="1492599406393" ID="ID_1396734805" MODIFIED="1492599408683" TEXT="par goto"> +<node CREATED="1492599555831" ID="ID_14736352" MODIFIED="1492599591405" TEXT="main の createTaskでおこなっている idgや odg のセットなどをやってくれるAPI"/> +<node CREATED="1492604154293" ID="ID_1555690452" MODIFIED="1492604262337" TEXT="par goto A->init(a); みたいな"> +<node CREATED="1492604303376" ID="ID_738766443" MODIFIED="1492604354237" TEXT="詳しいはなしは Gears/src/parallel_execution/Todo に書かれてる"/> +</node> +</node> +</node> +<node CREATED="1492604097874" ID="ID_1082174010" MODIFIED="1492604101425" POSITION="right" TEXT="検証"> +<node CREATED="1492604117017" ID="ID_446579225" MODIFIED="1492604141800" TEXT="multi thread の検証"> +<node CREATED="1492604587774" ID="ID_379690336" MODIFIED="1492604600987" TEXT="CPU のクロックで時間を計測する"/> +<node CREATED="1492604611684" ID="ID_25970880" MODIFIED="1492604627593" TEXT="Cerium はその方法で実測している"/> +<node CREATED="1492605419779" ID="ID_1944953177" MODIFIED="1492605424675" TEXT="meta でいれる"/> +</node> +</node> +<node CREATED="1492604701318" ID="ID_715646690" MODIFIED="1492605448994" POSITION="right" TEXT="今後の課題"> +<node CREATED="1492604750945" ID="ID_1937336138" MODIFIED="1492604786954" TEXT="normal と meta levelの明示的な分離"/> +<node CREATED="1492604705236" ID="ID_1476147969" MODIFIED="1492604813009" TEXT="multi thread で動いているかの検証をmeta 部分で行う"/> +<node CREATED="1492604739017" ID="ID_591072804" MODIFIED="1492604808105" TEXT="並列実行APIの実装"/> +</node> +</node> +</map>