Mercurial > hg > Papers > 2016 > parusu-sigos
view sigos.mm @ 21:f035e77dcca3 default tip
Update
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 01 Jun 2016 00:19:05 +0900 |
parents | f2f9c7110b41 |
children |
line wrap: on
line source
<map version="1.0.1"> <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> <node CREATED="1462348402043" ID="ID_446513167" MODIFIED="1462351253237" TEXT="sigos"> <node CREATED="1462348437829" ID="ID_188609327" MODIFIED="1462348569768" POSITION="right" TEXT="GearsOS の目的"> <node CREATED="1462348448573" ID="ID_578864329" MODIFIED="1462348517113" TEXT="並列処理のソフトウェアを信頼性高く記述したい"> <node CREATED="1462350142598" ID="ID_195511088" MODIFIED="1462352199049" TEXT="信頼性はデータの正しさ、 依存関係の保証"> <node CREATED="1462352205923" ID="ID_1296922065" MODIFIED="1462352217558" TEXT="プログラムが実行時に落ちない"/> </node> </node> <node CREATED="1462348478958" ID="ID_230418586" MODIFIED="1462348550107" TEXT="そのための並列プログラミングフレームワーク"/> <node CREATED="1462348569980" ID="ID_1045100452" MODIFIED="1462348588151" TEXT="Code Gear と Data Gear を使ったプログラミングスタイル"> <node CREATED="1462348590792" ID="ID_1143997676" MODIFIED="1462348626311" TEXT="Code Gear の実行には IDG, ODG が必要"/> </node> <node CREATED="1462351262027" ID="ID_1393749566" MODIFIED="1462351283363" TEXT="Meta Code Gear と Meta Data Gear を使った meta computation"/> </node> <node CREATED="1462348637268" ID="ID_133255598" MODIFIED="1462352298817" POSITION="right" TEXT="Code Gear, Data Gear"> <node CREATED="1462349979947" ID="ID_331147222" MODIFIED="1462350000355" TEXT="CG は IDG と ODG の組で扱われる"/> <node CREATED="1462350976298" ID="ID_957667219" MODIFIED="1462351033115" TEXT="Code Gear の実行時間, メモリ使用量を見積もり を予測可能とする"/> <node CREATED="1462351137808" ID="ID_1330709102" MODIFIED="1462351214283" TEXT="Code Gear 間の移動はfunction call ではなく継続を使って移動する"/> <node CREATED="1462352302972" ID="ID_1170614307" MODIFIED="1462352324205" TEXT="Code Gear 間に meta Code Gear を入れることで meta computation を行う"/> </node> <node CREATED="1462348657027" ID="ID_365384552" MODIFIED="1462348658957" POSITION="right" TEXT="CbC"> <node CREATED="1462350082941" ID="ID_1656989444" MODIFIED="1462350092777" TEXT="cs を使ったプログラミング"/> <node CREATED="1462350071241" ID="ID_1577864204" MODIFIED="1462351130232" TEXT="function call ではなく、gotoを使った軽量継続"/> <node CREATED="1462351047073" ID="ID_1369238896" MODIFIED="1462351052642" TEXT="Gears OS 向けのサポート"> <node CREATED="1462351053970" ID="ID_1462663940" MODIFIED="1462351087389" TEXT="自動的にメタレベルに継続する"/> </node> <node CREATED="1462354584971" ID="ID_1112062286" MODIFIED="1462354587253" TEXT="runtime"> <node CREATED="1462354587254" ID="ID_1347666144" MODIFIED="1462354951474" TEXT="いま手動で書いているcontext のaccessを動的に管理する"/> <node CREATED="1462354908955" ID="ID_337501830" MODIFIED="1462354915938" TEXT="方法は複数ある"> <node CREATED="1462354605037" ID="ID_847250633" MODIFIED="1462354618572" TEXT="dynamic loading"/> <node CREATED="1462354654178" ID="ID_1600780671" MODIFIED="1462354668817" TEXT="別のruntimeに接続する"/> <node CREATED="1462354620437" ID="ID_373703789" MODIFIED="1462354626027" TEXT="jit"/> <node CREATED="1462354630299" ID="ID_824873344" MODIFIED="1462354904682" TEXT="llvm の jit はmulti threadと相性良くない"> <node CREATED="1462354719261" ID="ID_379483068" MODIFIED="1462354732376" TEXT="jit を管理する thread を用意すれば良い"/> </node> </node> </node> </node> <node CREATED="1462348668437" ID="ID_1673745629" MODIFIED="1462349761749" POSITION="right" TEXT="prototype Gears OS の構成"> <node CREATED="1462349973369" ID="ID_1442808291" MODIFIED="1462349977277" TEXT="Context"> <node CREATED="1462351295043" ID="ID_607637945" MODIFIED="1462351314558" TEXT="meta data Gear の代表例"/> <node CREATED="1462351320747" ID="ID_98116235" MODIFIED="1462351330415" TEXT="すべてのデータを"/> </node> <node CREATED="1462349894637" ID="ID_1988169245" MODIFIED="1462349899016" TEXT="Allocator"/> <node CREATED="1462348674238" ID="ID_333502750" MODIFIED="1462354459036" TEXT="Synchronized Queue"> <node CREATED="1462353382231" ID="ID_948991469" MODIFIED="1462353386482" TEXT="CAS での実装"/> </node> <node CREATED="1462348678433" ID="ID_1967908081" MODIFIED="1462348691508" TEXT="Persistent Data Tree"> <node CREATED="1462353421481" ID="ID_833499509" MODIFIED="1462353426520" TEXT="RBTree"/> <node CREATED="1462353528876" ID="ID_1076530622" MODIFIED="1462353531581" TEXT="非破壊"/> </node> <node CREATED="1462348691931" ID="ID_832934708" MODIFIED="1462348693484" TEXT="Worker"> <node CREATED="1462353591922" ID="ID_940938167" MODIFIED="1462353690441" TEXT="Active Task Queue から Task を取得し、実行する"/> </node> <node CREATED="1462349962869" ID="ID_1254874686" MODIFIED="1462349969516" TEXT="TaskManager"> <node CREATED="1462353621044" ID="ID_919832986" MODIFIED="1462353631290" TEXT="Task の依存関係を解決する"/> <node CREATED="1462353633665" ID="ID_1490974106" MODIFIED="1462353707841" TEXT="Wait task queue の Task から"/> </node> </node> <node CREATED="1462348731906" ID="ID_368656261" MODIFIED="1462348735202" POSITION="right" TEXT="依存関係の解決"> <node CREATED="1462350098255" ID="ID_281344382" MODIFIED="1462639286633" TEXT="DS に 依存関係にある Task のQueueを持たせる"> <node CREATED="1462353738656" ID="ID_1020279599" MODIFIED="1462353747193" TEXT="Cerium でいう wait_me か"/> </node> <node CREATED="1462350114802" ID="ID_75333431" MODIFIED="1462350114802" TEXT=""/> </node> <node CREATED="1462348727866" ID="ID_915757053" MODIFIED="1462348759426" POSITION="right" TEXT="GPU"/> <node CREATED="1462349697404" ID="ID_129394562" MODIFIED="1462349699922" POSITION="right" TEXT="評価"> <node CREATED="1462349699923" ID="ID_1461425159" MODIFIED="1462349702500" TEXT="Twice"/> <node CREATED="1462349705698" ID="ID_1378958216" MODIFIED="1462349705698" TEXT=""/> </node> <node CREATED="1464077030670" ID="ID_1286923199" MODIFIED="1464077033299" POSITION="left" TEXT="スライド"> <node CREATED="1464077034200" ID="ID_60649983" MODIFIED="1464077038572" TEXT="研究目的"> <node CREATED="1464427442971" ID="ID_1191288534" MODIFIED="1464427452004" TEXT="Cerium の欠点を書く"> <node CREATED="1464427455611" ID="ID_1268119390" MODIFIED="1464427462699" TEXT="taskでの依存関係"/> <node CREATED="1464427465221" ID="ID_1660967778" MODIFIED="1464427478267" TEXT="型がない"/> </node> </node> <node CREATED="1464077039087" ID="ID_1756412976" MODIFIED="1464077044689" TEXT="Gears OS"/> <node CREATED="1464077045546" ID="ID_767472884" MODIFIED="1464077051703" TEXT="Code Gear Data Gear"/> <node CREATED="1464077052653" ID="ID_1772679573" MODIFIED="1464423974736" TEXT=" GearsOS の構成"/> <node CREATED="1464423975183" ID="ID_1777784060" MODIFIED="1464423977105" TEXT="評価"/> <node CREATED="1464423978224" ID="ID_1029156077" MODIFIED="1464423980762" TEXT="今後の課題"/> </node> <node CREATED="1464432833136" ID="ID_470663877" MODIFIED="1464432840853" POSITION="left" TEXT="修正"> <node CREATED="1464432842046" ID="ID_1983987511" MODIFIED="1464432848326" TEXT="研究目的"> <node CREATED="1464432848326" ID="ID_364905917" MODIFIED="1464432856028" TEXT="並列 "> <node CREATED="1464432866718" ID="ID_1196580896" MODIFIED="1464432875424" TEXT="CodeとDataの単位毎に並列"/> </node> <node CREATED="1464432856315" ID="ID_1334097915" MODIFIED="1464432860386" TEXT="柔軟性"> <node CREATED="1464432878880" ID="ID_252983780" MODIFIED="1464432889032" TEXT="いろんな柔軟性"> <node CREATED="1464432897863" ID="ID_916591592" MODIFIED="1464432902966" TEXT="テクノロジーマッピング"> <node CREATED="1464432908806" ID="ID_824969951" MODIFIED="1464432916941" TEXT="異なるアーキテクチャでも同じプログラムが動く"/> </node> <node CREATED="1464432924107" ID="ID_833483745" MODIFIED="1464432929190" TEXT="異なるversionの混在"> <node CREATED="1464432932148" ID="ID_740305121" MODIFIED="1464432936676" TEXT="特にネットワーク接続"/> </node> <node CREATED="1464432957020" ID="ID_636970555" MODIFIED="1464432961452" TEXT="プログラムの変更"/> <node CREATED="1464432979855" ID="ID_1778076535" MODIFIED="1464432984898" TEXT="実行時の変更"/> </node> </node> <node CREATED="1464432860766" ID="ID_1355016039" MODIFIED="1464433031671" TEXT="信頼性"> <node CREATED="1464432989376" ID="ID_1254636196" MODIFIED="1464432996179" TEXT="検証"> <node CREATED="1464432997568" ID="ID_515833313" MODIFIED="1464433000809" TEXT="モデル検査を使う"> <node CREATED="1464433005779" ID="ID_548893933" MODIFIED="1464433009796" TEXT="できるだけ有限状態"/> <node CREATED="1464433013043" ID="ID_1702758027" MODIFIED="1464433018498" TEXT="不必要に状態を入れない"> <node CREATED="1464433019769" ID="ID_147579656" MODIFIED="1464433026144" TEXT="特に環境とかスタック"/> </node> </node> </node> <node CREATED="1464433032106" ID="ID_1163520693" MODIFIED="1464433034513" TEXT="証明"> <node CREATED="1464433038681" ID="ID_1903319486" MODIFIED="1464433048944" TEXT="Code と Dataを理論に定義"/> </node> </node> <node CREATED="1464508482859" ID="ID_1478172490" MODIFIED="1464508523088" TEXT="最初にある程度まとめたスライド(去年との違い)を入れる"/> </node> <node CREATED="1464433060055" ID="ID_160981626" MODIFIED="1464433064591" TEXT="Gears のアプローチ"> <node CREATED="1464433065885" ID="ID_181737657" MODIFIED="1464433083653" TEXT="並列実行はInput が揃った CG から実行"/> <node CREATED="1464433095134" ID="ID_1902548270" MODIFIED="1464433113565" TEXT="Worker 自体もGears で記述"/> <node CREATED="1464433123669" ID="ID_985948767" MODIFIED="1464433129459" TEXT="柔軟性はmeta computation で実現"> <node CREATED="1464433150410" ID="ID_1817582445" MODIFIED="1464433178425" TEXT="CGの継続の間にmeta CGを挟む"/> <node CREATED="1464433181016" ID="ID_1604650295" MODIFIED="1464433189503" TEXT="DS に meta DS を追加"/> <node CREATED="1464433196240" ID="ID_59209401" MODIFIED="1464433208000" TEXT="meta 部分は Normal leve からなるべく見えない"/> </node> <node CREATED="1464433230340" ID="ID_990233636" MODIFIED="1464433239886" TEXT="Gears の実行Context"> <node CREATED="1464433242101" ID="ID_1461397474" MODIFIED="1464433256112" TEXT="実行されるすべてのDS"/> <node CREATED="1464433256949" ID="ID_1562417638" MODIFIED="1464433262957" TEXT="すべてのCS"/> <node CREATED="1464433268468" ID="ID_1357583690" MODIFIED="1464433281652" TEXT="それらを結びつけるMDS,MCS"/> </node> <node CREATED="1464433294904" ID="ID_1418757401" MODIFIED="1464433296724" TEXT="CbC"> <node CREATED="1464433299944" ID="ID_1452816780" MODIFIED="1464433312435" TEXT="Cのtail call version"/> <node CREATED="1464433319489" ID="ID_430937148" MODIFIED="1464433327461" TEXT="meta 部分を隠す構文サポート"/> </node> <node CREATED="1464433348594" ID="ID_506423800" MODIFIED="1464433355520" TEXT="有限状態遷移の記述"> <node CREATED="1464433357727" ID="ID_1850570123" MODIFIED="1464433360008" TEXT="Gear Box"> <node CREATED="1464433362630" ID="ID_807557934" MODIFIED="1464433370833" TEXT="state chart"/> <node CREATED="1464433373575" ID="ID_453284389" MODIFIED="1464433380191" TEXT="状態間を結ぶDG"/> </node> </node> <node CREATED="1464433416173" ID="ID_396737367" MODIFIED="1464433417927" TEXT="実装"> <node CREATED="1464433423308" ID="ID_1702142469" MODIFIED="1464433431550" TEXT="OSX 上のマルチスレッドworker"/> <node CREATED="1464433438458" ID="ID_866863090" MODIFIED="1464433450964" TEXT="context は手書きな巨大なunion"/> <node CREATED="1464433459685" ID="ID_1501887204" MODIFIED="1464433469755" TEXT="red black tree をつかったpersitent data gear"/> <node CREATED="1464433472153" ID="ID_1289317838" MODIFIED="1464433501262" TEXT="有限状態幾何的なsynchronized queue"/> </node> </node> <node CREATED="1464433526194" ID="ID_1694664580" MODIFIED="1464433537985" TEXT="Gears OS プロトタイプの詳細"> <node CREATED="1464433539999" ID="ID_1486726647" MODIFIED="1464433542119" TEXT="全体構成"> <node CREATED="1464433545327" ID="ID_1248461308" MODIFIED="1464433551583" TEXT="context"> <node CREATED="1464433590773" ID="ID_1581705994" MODIFIED="1464433597242" TEXT="実行の様子"/> </node> <node CREATED="1464433552006" ID="ID_1194746624" MODIFIED="1464433553391" TEXT="worker"/> <node CREATED="1464433553631" ID="ID_269109589" MODIFIED="1464433557488" TEXT="synchronized queue"/> <node CREATED="1464433557819" ID="ID_928959023" MODIFIED="1464433561695" TEXT="red black tree"/> <node CREATED="1464433562016" ID="ID_978814003" MODIFIED="1464433567518" TEXT="task manager"/> </node> </node> <node CREATED="1464433603258" ID="ID_915464781" MODIFIED="1464433606173" TEXT="比較"> <node CREATED="1464433628753" ID="ID_1792167946" MODIFIED="1464433634051" TEXT="Cerium"/> <node CREATED="1464433644124" ID="ID_1978156315" MODIFIED="1464433657426" TEXT="既存のUnix OS"> <node CREATED="1464433668985" ID="ID_1254303748" MODIFIED="1464433670841" TEXT="Linux"/> </node> <node CREATED="1464433659705" ID="ID_1192298961" MODIFIED="1464433663930" TEXT="組み込み OS"> <node CREATED="1464433673666" ID="ID_1090022093" MODIFIED="1464433677313" TEXT="itron"/> <node CREATED="1464433684418" ID="ID_1270208101" MODIFIED="1464433686409" TEXT="vxmax"/> </node> <node CREATED="1464433704565" ID="ID_95607994" MODIFIED="1464433708824" TEXT="micro kernel os"/> </node> <node CREATED="1464433618477" ID="ID_1600905308" MODIFIED="1464433621920" TEXT="まとめ、課題"> <node CREATED="1464433740836" ID="ID_1449910541" MODIFIED="1464433753301" TEXT="  クリーンナップ"> <node CREATED="1464433753742" ID="ID_1610227753" MODIFIED="1464433760958" TEXT="meta と normal の切り分け"> <node CREATED="1464433764741" ID="ID_1639200751" MODIFIED="1464433769118" TEXT="特に構文的な切り替え"/> </node> <node CREATED="1464433774641" ID="ID_1756649286" MODIFIED="1464433787485" TEXT="不要なstack_push, pop"/> </node> <node CREATED="1464433793850" ID="ID_1527710141" MODIFIED="1464433795116" TEXT="GPU"/> <node CREATED="1464433796033" ID="ID_771561797" MODIFIED="1464433815987" TEXT="依存関係"/> <node CREATED="1464433799820" ID="ID_604700760" MODIFIED="1464433811276" TEXT="Context の動的生成"> <node CREATED="1464433818282" ID="ID_1473851385" MODIFIED="1464433823203" TEXT="Runtime を作る"/> </node> <node CREATED="1464433833572" ID="ID_1406524402" MODIFIED="1464433838025" TEXT="Persistent store"> <node CREATED="1464433839273" ID="ID_585114386" MODIFIED="1464433852344" TEXT="RBTree を別ストレージに移す機能"> <node CREATED="1464433857245" ID="ID_89430560" MODIFIED="1464433861009" TEXT="IOが必要"/> </node> </node> <node CREATED="1464433870637" ID="ID_8559213" MODIFIED="1464433876129" TEXT="プロセス"> <node CREATED="1464433877985" ID="ID_944176938" MODIFIED="1464433898047" TEXT="現状ではDSは全部同じメモリ空間上にあるのでそれを別空間にする"/> </node> <node CREATED="1464433916620" ID="ID_186762386" MODIFIED="1464433920646" TEXT="検証系"/> </node> </node> </node> </map>