Mercurial > hg > Members > yuuhi > slide
view s6/blank.html @ 16:642a7f5a5bad default tip
add new task...
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 22 Nov 2014 15:42:19 +0900 |
parents | 9683e2b1bbe7 |
children |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Seminar</title> <!-- Notes on CSS media types used: 1) projection -> slideshow mode (display one slide at-a-time; hide all others) 2) screen -> outline mode (display all slides-at-once on screen) 3) print -> print (and print preview) Note: toggle between projection/screen (that is, slideshow/outline) mode using t-key Questions, comments? - send them along to the mailinglist/forum online @ http://groups.google.com/group/webslideshow --> <!-- style sheet links --> <link rel="stylesheet/less" href="themes/blank/projection.css.less" media="screen,projection"> <link rel="stylesheet/less" href="themes/blank/screen.css.less" media="screen"> <link rel="stylesheet/less" href="themes/blank/print.css.less" media="print"> <link rel="stylesheet/less" href="blank.css.less" media="screen,projection"> <!-- Notes about less css support - all less stylesheets (*.css.less) need to get listed/loaded first (before the less.js script) - find more info about less.js online @ http://lesscss.org ***** NOTE: less.js browser script currently won’t work if you’re using Google Chrome and the path to your page starts with "file:///" due to a known Chrome issue. (In the developer/js console you will see: XMLHttpRequest cannot load file:///../s6/shared/projection.css.less. Cross origin requests are only supported for HTTP.) --> <!-- add js libs (less, jquery) --> <script src="js/less-1.1.4.min.js"></script> <script src="js/jquery-1.7.min.js"></script> <!-- S6 JS --> <script src="js/jquery.slideshow.js"></script> <script src="js/jquery.slideshow.counter.js"></script> <script src="js/jquery.slideshow.controls.js"></script> <script src="js/jquery.slideshow.footer.js"></script> <script src="js/jquery.slideshow.autoplay.js"></script> <script> $(document).ready( function() { Slideshow.init(); // Example 2: Start Off in Outline Mode // Slideshow.init( { mode: 'outline' } ); // Example 3: Use Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init(); // Example 4: Start Off in Autoplay Mode with Custom Transition // Slideshow.transition = transitionScrollUp; // Slideshow.init( { mode: 'autoplay' } ); } ); </script> <!-- Better Browser Banner for Microsoft Internet Explorer (IE) --> <!--[if IE]> <script src="js/jquery.microsoft.js"></script> <![endif]--> </head> <body> <div class="layout"> <div id="header"></div> <div id="footer"> <div align="right"> <img src="images/concurrency.png" width="200"> </div> </div> </div> <div class="presentation"> <!-- add slides here; example --> <div class='slide cover'> <table width="90%" height="90%" border="0" align="center"> <tr> <td><div align="center"> <h1><font color="#808db5">Ceriumの再設計</font></h1> </div></td> </tr> <tr> <td><div align="left"> Yuhi TOMARI <script> var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); var monthList = new Array("January","February","March","April","May","June", "July","August","September","October","November","December"); document.write(monthList[month]+" "+day+", "+year); </script> <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:300%;height:0.2em;"> </div></td> </tr> </table> </div> <div class='slide'> <h2>研究目的</h2> <ul> <li>当研究室ではCS/DSを使用したプログラミングを行っている</li> <dd>CS/DSについて <br>プログラムをCode Segment/Data Segmentという単位に分けて書くという手法を提案している <br>Code Segment:処理の単位(実行単位) <br>Data Segment:データ構造</dd> <li>CS/DSベースのプログラミングモデルの開発</li> <dd>CS/DSを用いた手法でプログラミングを行う言語、Continuation Based Cを用いて開発を行う</dd> <li>独自のMemory Managementの機構を持つ</li> <li>Cerium、Alice、Jungleで得られた知見を……</li> <li>名前も考える必要がある?(システム自体の名前と、CS/DSの名前)</li> </ul> <p>ただこれCerium再実装の話なので、使わないかも</p> </div> <div class='slide'> <h2>進捗</h2> <ul> <li><dt>CPU固定でthreadを生成するAPI</dt> <dd>OSXで無理っぽい->(できるのでは->無理っぽい)x2</dd> <dd>とりあえずLinuxで例題の作成</dd> </li> <li> <dt>LinuxでCeriumが動くかどうか</dt> </li> <li> <dt>計測用のツール</dt> </li> </ul> </div> <div class='slide'> <h2>Affinityを設定するAPI(Linux)</h2> <pre class="code"> int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *mask); </pre> <ul> <li><dt>affinity(親和度、cpu_set_t)は、そのスレッドが実行を許可されているCPUの集合を決定する <dd>maskにCPUをsetするときは、CPU_SETを使用する(例:CPU_SET(cpu_id,&mask)</dd></dt></li> <li><dt>スレッドのaffinityマスクを一つのCPUに設定し、スレッドをCPUに括りつけることができる(Man page) </dt></li> <li><dt>pidでaffinityをsetするthreadを指定するのだが、pid=0にすると呼び出し元のthreadにsetしてくれる</dt></li> </ul> </div> <div class='slide'> <h2>sched_setaffinity Sample</h2> <pre class="code"> void set_cpu(int cpu_id) { cpu_set_t mask; CPU_ZERO(&mask); CPU_SET(cpu_id, &mask); if (sched_setaffinity(0, sizeof(mask), &mask) == -1) { printf("Failed to set CPU affinity. \n"); return; } printf("Succeed to set CPU %d\n",cpu_id); return; }</pre> <p> どうやって本当に割り当てられてるか調べるか。taskset? sar? </p> </div> <div class='slide'> <h2>Google Performance Tools</h2> <ul> <li><dt><font color="red">CPU Profiler:サンプリングによって各関数の実行時間を計測・表示する</font></dt></li> <li><dt><font color="red">HeapProfiler:各関数におけるメモリ使用量を計測・表示する</font></dt></li> <li><dt><font color="red">TCMalloc:Googleの開発した高速malloc</font></dt></li> <li><dt>HeapChecker:メモリリークを検出する</dt></li> </ul> <p>Heap Profilerを使うには、TCMallocを使わないといけないらしい。</p> <p>結果としては、微妙…</p> <p>もう少し使い方を調べたら使い物になるかも</p> </div> <div class='slide'> <h2>CPU Profiler and Heap Profiler</h2> <p>example:word_count</p> <pre class="code"> Heap Profile Total: 6653 objects 2921 43.9% 43.9% 2921 43.9% 0x00007fff8e01b98d ? 599 9.0% 52.9% 599 9.0% _class_createInstance ? 404 6.1% 59.0% 404 6.1% 0x00007fff8e01bdfd ? 365 5.5% 64.5% 365 5.5% 0x00007fff8e01bed6 ? 360 5.4% 69.9% 360 5.4% 0x00007fff8a49730b ? 249 3.7% 73.6% 249 3.7% 0x00007fff8e02b952 ? 153 2.3% 75.9% 156 2.3% _cache_create ? 109 1.6% 77.6% 109 1.6% _xpc_get_type ? 100 1.5% 79.1% 100 1.5% 0x00007fff8a49728d ? 92 1.4% 80.4% 133 2.0% __Block_copy ?</pre> <pre class="code"> CPU Profile Total: 11 samples 7 63.6% 63.6% 7 63.6% ___psynch_cvwait 2 18.2% 81.8% 2 18.2% _semaphore_wait_trap 1 9.1% 90.9% 1 9.1% 0x00007fff6773c709 1 9.1% 100.0% 1 9.1% _write$NOCANCEL 0 0.0% 100.0% 1 9.1% 0x0000000108d51196 0 0.0% 100.0% 1 9.1% 0x0000000108d5144b 0 0.0% 100.0% 1 9.1% 0x0000000108d530fa 0 0.0% 100.0% 7 63.6% 0x0000000108d53113 0 0.0% 100.0% 7 63.6% 0x0000000108d552cf 0 0.0% 100.0% 7 63.6% 0x0000000108d55d38</pre> </div> <div class='slide'> <h2>Todo</h2> <ul> <li><dt>例題(fft,word_count,sort)の見直し</dt></li> <li><dt>SchedTaskをQueueInfoに</dt></li> <li><dt>sched_setaffinityをCeriumに実装</dt></li> <li><dt>Memory Allocatorの設計と実装</dt></li> </ul> </div> </div> <!-- presentation --> </body> </html>