Mercurial > hg > Papers > 2018 > parusu-master
changeset 0:7a8cb9c02d43
Add mindmap
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 05 Dec 2017 17:49:36 +0900 |
parents | |
children | 80536d2080d2 |
files | mindmap.mm |
diffstat | 1 files changed, 183 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mindmap.mm Tue Dec 05 17:49:36 2017 +0900 @@ -0,0 +1,183 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1512458853968" ID="ID_16361895" MODIFIED="1512460306570" TEXT="Gears os の並列処理"> +<node CREATED="1512459013907" ID="ID_1199179481" MODIFIED="1512459028630" POSITION="right" TEXT="研究目的"> +<node CREATED="1492596132358" ID="ID_251539353" MODIFIED="1492596147777" TEXT="並列処理のプログラミングは信頼性の確保が難しい"> +<node CREATED="1494759599699" ID="ID_1103318080" MODIFIED="1494759613270" TEXT="複雑さ"> +<node CREATED="1494759614698" ID="ID_1336227916" MODIFIED="1494759622158" TEXT="パイプライン"/> +<node CREATED="1494759623311" ID="ID_1116224711" MODIFIED="1494759630326" TEXT="データ並列化"/> +<node CREATED="1494759632951" ID="ID_1512675661" MODIFIED="1494759636950" TEXT="通信"/> +<node CREATED="1494759637815" ID="ID_608727346" MODIFIED="1494759640366" TEXT="同期"/> +</node> +</node> +<node CREATED="1494759255320" ID="ID_377562133" MODIFIED="1494759280615" TEXT="並列処理のチューニングは難しい"> +<node CREATED="1494759285616" ID="ID_464656512" MODIFIED="1494759414735" TEXT="アムダール則"/> +<node CREATED="1494759380205" ID="ID_1115166650" MODIFIED="1494759426126" TEXT="テクノロジーマッピング"> +<node CREATED="1494759430984" ID="ID_1519188342" MODIFIED="1494759439637" TEXT="GPGPU"/> +<node CREATED="1494759440348" ID="ID_503355580" MODIFIED="1494759450686" TEXT="PCクラスタ"/> +<node CREATED="1494759451887" ID="ID_1628193029" MODIFIED="1494759462694" TEXT="専用アーキテクチャ"/> +</node> +<node CREATED="1494759427167" ID="ID_530241215" MODIFIED="1494759516653" TEXT="Compiler directive"/> +<node CREATED="1494759525506" ID="ID_611151551" MODIFIED="1494759533173" TEXT="MPI"/> +<node CREATED="1494759537686" ID="ID_1866159972" MODIFIED="1494759545309" TEXT="CUDA"/> +<node CREATED="1494759553412" ID="ID_1491842568" MODIFIED="1494759572271" TEXT="記述が煩雑"> +<node CREATED="1494759572272" ID="ID_1036605218" MODIFIED="1494759589670" TEXT="すぐ時代遅れになる"/> +</node> +</node> +<node CREATED="1494759664659" ID="ID_811317689" MODIFIED="1494759695118" TEXT="メタ計算を使った並列処理"> +<node CREATED="1494759698395" ID="ID_282379188" MODIFIED="1494759735830" TEXT="チューニングをメタ計算部分で行う"/> +<node CREATED="1494759737495" ID="ID_1418869704" MODIFIED="1494759884854" TEXT="信頼性の確保もメタ計算部分で行う"/> +<node CREATED="1494759887127" ID="ID_402629690" MODIFIED="1494759912397" TEXT="アルゴリズムとチューニングを分離する"/> +<node CREATED="1494759913724" ID="ID_786401208" MODIFIED="1494759940445" TEXT="メタ計算をサポートする言語CbCを扱う"/> +<node CREATED="1494759941595" ID="ID_1342174865" MODIFIED="1494759974637" TEXT="コードとデータそれぞれにメタな部分がある"/> +</node> +<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> +<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="1494761099227" ID="ID_1907135787" MODIFIED="1494761136298" TEXT="normal level"> +<node CREATED="1494761138937" ID="ID_1784438052" MODIFIED="1494761158522" TEXT="継続で接続されたCode Gear"/> +<node CREATED="1494761161057" ID="ID_527415358" MODIFIED="1494761184082" TEXT="input Data Gear と Output Data Gear"/> +<node CREATED="1494761186594" ID="ID_417603619" MODIFIED="1494761217011" TEXT="Input と Output以外は触らない "> +<node CREATED="1494761227424" ID="ID_403417067" MODIFIED="1494761233523" TEXT="ポインタはない"/> +</node> +<node CREATED="1494761241932" ID="ID_733410380" MODIFIED="1494761268907" TEXT="tail call のみを使う関数型プログラミング"> +<node CREATED="1494761276236" ID="ID_715646781" MODIFIED="1494761288123" TEXT="agda に変換できる"/> +<node CREATED="1494761290188" ID="ID_182846393" MODIFIED="1494761309003" TEXT="agda を使ってプログラムの正しさを証明したい"/> +<node CREATED="1494761315025" ID="ID_34287223" MODIFIED="1494761328627" TEXT="ポインタ演算はメタ計算側で行う"> +<node CREATED="1494761335849" ID="ID_579494470" MODIFIED="1494761344619" TEXT="例えばメモリ管理など"/> +</node> +</node> +</node> +<node CREATED="1492596730763" ID="ID_1218431096" MODIFIED="1494760391681" TEXT="meta computation"> +<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 CREATED="1494760274310" ID="ID_244630254" MODIFIED="1494760328829" TEXT="Code Gear を管理する表"/> +<node CREATED="1494760331766" ID="ID_1097458727" MODIFIED="1494760349132" TEXT="Code Gear の間に入るstub"/> +<node CREATED="1494760350914" ID="ID_142372369" MODIFIED="1494760379812" TEXT="Code Gear の遷移を管理する Meta Code Gear"/> +</node> +<node CREATED="1494760121179" ID="ID_1341921987" MODIFIED="1494760169861" TEXT="Data Gear と Code Gear を管理する Meta Data Gear がある"> +<node CREATED="1494760172638" ID="ID_1595517450" MODIFIED="1494760211076" TEXT="スレッドストラクチャーに相当するContext"/> +<node CREATED="1494760228117" ID="ID_80626219" MODIFIED="1494760264045" TEXT="Context の管理を行うスケジューラ"/> +</node> +<node CREATED="1494760693133" ID="ID_1073090241" MODIFIED="1494760700587" TEXT="Interface"> +<node CREATED="1494760704308" ID="ID_1070207889" MODIFIED="1494760730908" TEXT="Code Gear と Data Gear の集合"/> +<node CREATED="1494760732517" ID="ID_394512662" MODIFIED="1494760779996" TEXT="Interface Data Gear を通してアクセスする"/> +<node CREATED="1494760782333" ID="ID_1257836270" MODIFIED="1494760815036" TEXT="関数呼び出しのコールフレームに相当する"/> +</node> +<node CREATED="1494760582042" ID="ID_1517130971" MODIFIED="1494760600981" TEXT="CbCコンパイラ"> +<node CREATED="1494760600982" ID="ID_1918147567" MODIFIED="1494760610113" TEXT="no stack frame"/> +<node CREATED="1494760653220" ID="ID_551663297" MODIFIED="1494760681164" TEXT="メタ部分とノーマル部分を同じCbCで記述する"/> +<node CREATED="1494760872680" ID="ID_1205279647" MODIFIED="1494760881709" TEXT="Gear box"> +<node CREATED="1494760881710" ID="ID_79379372" MODIFIED="1494760915348" TEXT="GearsOS 用のステートチャートの拡張"/> +</node> +</node> +<node CREATED="1494760620196" ID="ID_115694418" MODIFIED="1494760636460" TEXT="context の生成"> +<node CREATED="1494761483268" ID="ID_362523788" MODIFIED="1494761508555" TEXT="使用するCode Gearの表"/> +<node CREATED="1494761510408" ID="ID_1497583145" MODIFIED="1494761544331" TEXT="使用するData Gear の表と型の情報"/> +<node CREATED="1494761546064" ID="ID_237438517" MODIFIED="1494761561331" TEXT="例外処理"/> +<node CREATED="1494761569916" ID="ID_896829350" MODIFIED="1494761589619" TEXT="Data Gear の依存関係"/> +<node CREATED="1494761591131" ID="ID_1495278711" MODIFIED="1494761598858" TEXT="メモリ管理"/> +</node> +<node CREATED="1494760637161" ID="ID_1185823918" MODIFIED="1494760648404" TEXT="stub の生成"> +<node CREATED="1494761358048" ID="ID_537403430" MODIFIED="1494761424619" TEXT="Interface の Data Gear から必要なData Gear を抜き出して CbC のコードを呼び出す"/> +<node CREATED="1494761426136" ID="ID_1765829055" MODIFIED="1494761476027" TEXT="引数をData Gear に書き出して Meta Code Gear に移行する"/> +</node> +</node> +</node> +<node CREATED="1512459138764" ID="ID_1903848084" MODIFIED="1512459176537" POSITION="right" TEXT="CbC"> +<node CREATED="1512459188214" ID="ID_59092144" MODIFIED="1512459194712" TEXT="code Gear, Data Gear"/> +<node CREATED="1512459195550" ID="ID_759671304" MODIFIED="1512459207695" TEXT="meta computation"> +<node CREATED="1512459207696" ID="ID_1753156845" MODIFIED="1512459215215" TEXT="stub"/> +</node> +<node CREATED="1512459217895" ID="ID_620166500" MODIFIED="1512459227058" TEXT="interface"/> +</node> +<node CREATED="1512459051002" ID="ID_1406407128" MODIFIED="1512460037059" POSITION="right" TEXT="並列処理の構成"> +<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="1512459642693" ID="ID_1515147666" MODIFIED="1512460079315" TEXT="Data Gear の meta Data"> +<node CREATED="1512459955573" ID="ID_1268418191" MODIFIED="1512459963646" TEXT="依存関係解決用のqueue"/> +</node> +</node> +<node CREATED="1512459624453" ID="ID_1863644916" MODIFIED="1512460342956" POSITION="right" TEXT="GPU 実行"> +<node CREATED="1512459627489" ID="ID_1073024940" MODIFIED="1512459629873" TEXT="CUDA Worker"> +<node CREATED="1512460181086" ID="ID_1891611974" MODIFIED="1512460205855" TEXT="Task を GPUで実行する"/> +</node> +<node CREATED="1512459630289" ID="ID_1421603107" MODIFIED="1512459633777" TEXT="CUDA Buffer"> +<node CREATED="1512460155955" ID="ID_1415092848" MODIFIED="1512460177862" TEXT="Data Gear を GPU の Data構造にマッピングするためのもの"/> +</node> +<node CREATED="1512460105826" ID="ID_1054295790" MODIFIED="1512460153903" TEXT="Code Gear stub で GPU用のFunction を呼ぶ"/> +</node> +<node CREATED="1512460310214" ID="ID_1936995951" MODIFIED="1512460317608" POSITION="right" TEXT="Gears OS の記述"> +<node CREATED="1512460345799" ID="ID_149182714" MODIFIED="1512460349488" TEXT="Interface"/> +<node CREATED="1512460350073" ID="ID_185870589" MODIFIED="1512460351791" TEXT="par goto"> +<node CREATED="1512460353973" ID="ID_1212844908" MODIFIED="1512460356687" TEXT="par goto iterate"/> +</node> +<node CREATED="1512460367213" ID="ID_567384353" MODIFIED="1512460368327" TEXT="stub"/> +<node CREATED="1512460370758" ID="ID_945629592" MODIFIED="1512460383581" TEXT="perl script な 変換"/> +</node> +<node CREATED="1512459041016" ID="ID_1841381888" MODIFIED="1512460406093" POSITION="right" TEXT="Gears OS の評価"> +<node CREATED="1512459346672" ID="ID_1546513678" MODIFIED="1512459938589" TEXT="例題"> +<node CREATED="1512459348722" ID="ID_953736294" MODIFIED="1512459568879" TEXT="bitonic sort"/> +<node CREATED="1512459907943" ID="ID_1559767155" MODIFIED="1512459911920" TEXT="twice"/> +</node> +<node CREATED="1512459939767" ID="ID_1100574778" MODIFIED="1512459952847" TEXT="GPUでの実行も含める"/> +</node> +<node CREATED="1512460286627" ID="ID_1409831252" MODIFIED="1512460438315" POSITION="right" TEXT="まとめ, 今後の課題"> +<node CREATED="1512460491942" ID="ID_1541576349" MODIFIED="1512460497601" TEXT="疑似並列実行"> +<node CREATED="1512460501794" ID="ID_1097558600" MODIFIED="1512460537793" TEXT="Code Gear を実行の最小単位とする"/> +<node CREATED="1512460539814" ID="ID_1131663966" MODIFIED="1512460568205" TEXT=""/> +</node> +</node> +</node> +</map>