annotate Cerium_IO/Cerium_IO_memo.txt @ 102:bb7a0778747b

add 6/4 seminor memo
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Wed, 04 Jun 2014 11:26:23 +0900
parents e64b09046d20
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
1 -------------------------------------------------------------------
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
2 2014/06/03 (Tue)
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
3 [seminor]
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
4 * アドレス固定しないでも実装できます
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
5 * ceriumは絶対アドレス関係ないから
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
6 * サジェスチョンでしかない、書いてないはず
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
7 * map_fixidで書く必要はない
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
8 * mmapしたアドレスがどこにmappingされるかは置いといて
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
9 * それを正しく渡せればいいのだから、fixidは関係ない
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
10 * どのアドレスを指定しているのか
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
11 * blocked_read
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
12 * 実メモリでないところをmmapしようとしてたら駄目
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
13 * どこの固定アドレスを指定してるかの問題がある
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
14 * mmapなのにreadtaskを使う意味はあるのかどうか
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
15 * 今までのmmapはどこに書いていた?
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
16 * mmapをダブルバッファリングでやってほしい
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
17 * ダブルバッファリングとは
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
18 * mmapを2つやって、片っ方の仕事が終わったら解放して、
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
19 * もう一度mmapで割り当てる、これを繰り返す感じ
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
20 * 2つのメモリマップ領域を交互に使う
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
21 * 片っ方が処理を終える頃には片っ方が実行できるみたいな
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
22 * file mmapってのを配列にして
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
23 * 要素1を読んでるタスクに対して読み込みwaitforにひっかけておいて
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
24 * 全部おわったらダブルバッファリングの切り替えを行う
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
25 * どのタイミングでいつだれがダブルバッファリングを動かすのか
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
26 * readのばあいはruntaskにいれたよね
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
27 * vSyncの場合
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
28 * 単なる待ち合わせの場合
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
29 画面を書いている間、表示しているみたいな
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
30 表示と書き込みが別にあるってのがダブルバッファリングのきも
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
31 readの場合は、mmapが動かない
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
32 条件分岐があってー・・・。
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
33
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
34 * runtask16の場合
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
35 * readのタスクに対してかけてる
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
36 * メモリマップしたやつにwaitforかけていくけども
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
37 * 全部にかけちゃうと量的に多い
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
38 * readのところにいれてできるのか?
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
39 * できなくはな・・・い・・・?
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
40 * wのtaskのところでアドレスを振わけるのがめんどくさい
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
41 * ダブルバッファリングしてくればこの辺りをいじらなくて済む
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
42 * file -> mmapとは
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
43 * ダブルバッファリングをしているとこいつを直接書き換えられる割と楽になる!
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
44 * file mmap、next mmap用意
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
45 * 全部終わったらnext mmapに切り替える
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
46 * そのときnext mmapがあくから〜〜〜
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
47 * create taskしてるときに
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
48 * readの方のwait for(run taskに対するwait for)
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
49 * wait for h exec
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
50 * run task16にかかっている
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
51 * 16ずつやっていく
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
52 * 最後にひっかかるから、そこでバッファを切り替え
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
53 * 問題はlogicを自分で理解して書けるのかどうかって点
bb7a0778747b add 6/4 seminor memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 100
diff changeset
54
99
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
55 -------------------------------------------------------------------
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
56 2014/05/11 (Sun)
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
57 [memo]
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
58 void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
59
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
60 off はページサイズの整数倍でなければならない。
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
61 ページサイズの取得は、getpagesize() で調べることができる。
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
62 (ページサイズの整数倍でないと、error することを確認)
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
63
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
64 http://www.gadgety.net/shin/tips/unix/ipc/mmap.html
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
65
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
66 -------------------------------------------------------------------
95
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
67 2014/05/08 (Thu)
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
68 [memo]
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
69 IO についての具体的な論文を出したい
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
70 こういうアプリケーションは mmap がいい。fread がいい etc...
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
71 Task の負荷が大きい例題があるといいよね
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
72
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
73 GPU で word count を走らせた時も計測してみよう
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
74 pread を fread で書き換えたり、Blocked mmap もやってみて、様々な読み込み方法を試してみよう
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
75
99
b41e121acc0b add mmap
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 97
diff changeset
76 -------------------------------------------------------------------
91
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 2014/05/01 (Thu)
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 [memo]
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 Linux のメモリキャッシュをクリアする
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 http://futuremix.org/2009/09/clear-linux-memory-cach
100
e64b09046d20 add madvise result
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 99
diff changeset
81 %sysctl -w vm.drop_caches=3
91
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 vm.drop_caches=index
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 index : 内容
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 1 : ページキャッシュ解放
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 2 : ダーティキャッシュ、inode 解放
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 3 : 1 かつ 2
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 sysctl について
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 ページキャッシュとは??
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 ダーティキャッシュとは??
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 Linux PC でのスペックの確認方法
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 http://www.asterisk-works.jp/wiki/index.php/Linux_PC%E3%81%A7%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 OS の確認方法
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 cat /etc/redhat-release redhat 系
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 cat /etc/debian_version Debian 系
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 cat /etc/lsb-release Ubuntu
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 様々なハードウェア情報
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 cat /proc/cpuinfo
40ea07afb5b7 separate memo
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 cat /proc/meminfo
92
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
105
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
106 計測を Block num division size いろいろ試してみよう
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
107 Solaris でも測ってみたいよね -> mmap がはやいらしい
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
108
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
109 read size を自動チューニングしたい
4db3a0797aa7 measure WordCount time in namako
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents: 91
diff changeset
110 どうにかできないかな??
95
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
111
5fb2d057b5d9 add synth memo
Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
parents: 92
diff changeset
112