comparison 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
comparison
equal deleted inserted replaced
15:9683e2b1bbe7 16:642a7f5a5bad
139 </li> 139 </li>
140 140
141 <li> 141 <li>
142 <dt>LinuxでCeriumが動くかどうか</dt> 142 <dt>LinuxでCeriumが動くかどうか</dt>
143 </li> 143 </li>
144
145 <li>
146 <dt>計測用のツール</dt>
147 </li>
144 </ul> 148 </ul>
145 </div> 149 </div>
146 150
147 <div class='slide'> 151 <div class='slide'>
148 <h2>Affinityを設定するAPI(Linux)</h2> 152 <h2>Affinityを設定するAPI(Linux)</h2>
152 </pre> 156 </pre>
153 157
154 <ul> 158 <ul>
155 <li><dt>affinity(親和度、cpu_set_t)は、そのスレッドが実行を許可されているCPUの集合を決定する 159 <li><dt>affinity(親和度、cpu_set_t)は、そのスレッドが実行を許可されているCPUの集合を決定する
156 <dd>maskにCPUをsetするときは、CPU_SETを使用する(例:CPU_SET(cpu_id,&mask)</dd></dt></li> 160 <dd>maskにCPUをsetするときは、CPU_SETを使用する(例:CPU_SET(cpu_id,&mask)</dd></dt></li>
157 <li><dt>スレッドのaffinityマスクを一つのCPUに設定し、スレッドをCPUに括りつけることができる(Man page)</dt></li> 161 <li><dt>スレッドのaffinityマスクを一つのCPUに設定し、スレッドをCPUに括りつけることができる(Man page)
162 </dt></li>
163
164 <li><dt>pidでaffinityをsetするthreadを指定するのだが、pid=0にすると呼び出し元のthreadにsetしてくれる</dt></li>
158 </ul> 165 </ul>
159 </div> 166 </div>
160 167
161 <div class='slide'> 168 <div class='slide'>
162 <h2>sched_setaffinity Sample</h2> 169 <h2>sched_setaffinity Sample</h2>
177 どうやって本当に割り当てられてるか調べるか。taskset? sar? 184 どうやって本当に割り当てられてるか調べるか。taskset? sar?
178 </p> 185 </p>
179 186
180 </div> 187 </div>
181 188
182 189 <div class='slide'>
190 <h2>Google Performance Tools</h2>
191 <ul>
192 <li><dt><font color="red">CPU Profiler:サンプリングによって各関数の実行時間を計測・表示する</font></dt></li>
193 <li><dt><font color="red">HeapProfiler:各関数におけるメモリ使用量を計測・表示する</font></dt></li>
194 <li><dt><font color="red">TCMalloc:Googleの開発した高速malloc</font></dt></li>
195 <li><dt>HeapChecker:メモリリークを検出する</dt></li>
196 </ul>
197 <p>Heap Profilerを使うには、TCMallocを使わないといけないらしい。</p>
198 <p>結果としては、微妙…</p>
199 <p>もう少し使い方を調べたら使い物になるかも</p>
200 </div>
201
202
203 <div class='slide'>
204 <h2>CPU Profiler and Heap Profiler</h2>
205
206 <p>example:word_count</p>
207 <pre class="code">
208 Heap Profile
209 Total: 6653 objects
210 2921 43.9% 43.9% 2921 43.9% 0x00007fff8e01b98d ?
211 599 9.0% 52.9% 599 9.0% _class_createInstance ?
212 404 6.1% 59.0% 404 6.1% 0x00007fff8e01bdfd ?
213 365 5.5% 64.5% 365 5.5% 0x00007fff8e01bed6 ?
214 360 5.4% 69.9% 360 5.4% 0x00007fff8a49730b ?
215 249 3.7% 73.6% 249 3.7% 0x00007fff8e02b952 ?
216 153 2.3% 75.9% 156 2.3% _cache_create ?
217 109 1.6% 77.6% 109 1.6% _xpc_get_type ?
218 100 1.5% 79.1% 100 1.5% 0x00007fff8a49728d ?
219 92 1.4% 80.4% 133 2.0% __Block_copy ?</pre>
220 <pre class="code">
221 CPU Profile
222 Total: 11 samples
223 7 63.6% 63.6% 7 63.6% ___psynch_cvwait
224 2 18.2% 81.8% 2 18.2% _semaphore_wait_trap
225 1 9.1% 90.9% 1 9.1% 0x00007fff6773c709
226 1 9.1% 100.0% 1 9.1% _write$NOCANCEL
227 0 0.0% 100.0% 1 9.1% 0x0000000108d51196
228 0 0.0% 100.0% 1 9.1% 0x0000000108d5144b
229 0 0.0% 100.0% 1 9.1% 0x0000000108d530fa
230 0 0.0% 100.0% 7 63.6% 0x0000000108d53113
231 0 0.0% 100.0% 7 63.6% 0x0000000108d552cf
232 0 0.0% 100.0% 7 63.6% 0x0000000108d55d38</pre>
233 </div>
183 234
184 <div class='slide'> 235 <div class='slide'>
185 <h2>Todo</h2> 236 <h2>Todo</h2>
186 <ul> 237 <ul>
238 <li><dt>例題(fft,word_count,sort)の見直し</dt></li>
239 <li><dt>SchedTaskをQueueInfoに</dt></li>
187 <li><dt>sched_setaffinityをCeriumに実装</dt></li> 240 <li><dt>sched_setaffinityをCeriumに実装</dt></li>
188 <li><dt>Memory Allocatorの設計と実装</dt></li> 241 <li><dt>Memory Allocatorの設計と実装</dt></li>
189 </ul> 242 </ul>
190 </div> 243 </div>
191 244