view 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
line wrap: on
line source

-------------------------------------------------------------------
2014/06/03 (Tue)
    [seminor]
    * アドレス固定しないでも実装できます
        * ceriumは絶対アドレス関係ないから
    * サジェスチョンでしかない、書いてないはず
    * map_fixidで書く必要はない
        * mmapしたアドレスがどこにmappingされるかは置いといて
        * それを正しく渡せればいいのだから、fixidは関係ない
    * どのアドレスを指定しているのか
        * blocked_read
        * 実メモリでないところをmmapしようとしてたら駄目
        * どこの固定アドレスを指定してるかの問題がある
    * mmapなのにreadtaskを使う意味はあるのかどうか
    * 今までのmmapはどこに書いていた?
    * mmapをダブルバッファリングでやってほしい
        * ダブルバッファリングとは
        * mmapを2つやって、片っ方の仕事が終わったら解放して、
        * もう一度mmapで割り当てる、これを繰り返す感じ
        * 2つのメモリマップ領域を交互に使う
        * 片っ方が処理を終える頃には片っ方が実行できるみたいな
        * file mmapってのを配列にして
        * 要素1を読んでるタスクに対して読み込みwaitforにひっかけておいて
    * 全部おわったらダブルバッファリングの切り替えを行う
    * どのタイミングでいつだれがダブルバッファリングを動かすのか
    * readのばあいはruntaskにいれたよね
    * vSyncの場合
        * 単なる待ち合わせの場合
    画面を書いている間、表示しているみたいな
    表示と書き込みが別にあるってのがダブルバッファリングのきも
    readの場合は、mmapが動かない
    条件分岐があってー・・・。

    * runtask16の場合
        * readのタスクに対してかけてる
        * メモリマップしたやつにwaitforかけていくけども
        * 全部にかけちゃうと量的に多い
    * readのところにいれてできるのか?
    * できなくはな・・・い・・・?
    * wのtaskのところでアドレスを振わけるのがめんどくさい
    * ダブルバッファリングしてくればこの辺りをいじらなくて済む
    * file -> mmapとは
    * ダブルバッファリングをしているとこいつを直接書き換えられる割と楽になる!
    * file mmap、next mmap用意
    * 全部終わったらnext mmapに切り替える
    * そのときnext mmapがあくから〜〜〜
    * create taskしてるときに
    * readの方のwait for(run taskに対するwait for)
    * wait for h exec
    * run task16にかかっている
    * 16ずつやっていく
    * 最後にひっかかるから、そこでバッファを切り替え
    * 問題はlogicを自分で理解して書けるのかどうかって点

-------------------------------------------------------------------
2014/05/11 (Sun)
    [memo]
    void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);

    off はページサイズの整数倍でなければならない。
    ページサイズの取得は、getpagesize() で調べることができる。
    (ページサイズの整数倍でないと、error することを確認)

    http://www.gadgety.net/shin/tips/unix/ipc/mmap.html

-------------------------------------------------------------------
2014/05/08 (Thu)
    [memo]
        IO についての具体的な論文を出したい
        こういうアプリケーションは mmap がいい。fread がいい etc...
        Task の負荷が大きい例題があるといいよね

        GPU で word count を走らせた時も計測してみよう
        pread を fread で書き換えたり、Blocked mmap もやってみて、様々な読み込み方法を試してみよう

-------------------------------------------------------------------
2014/05/01 (Thu)
    [memo]
        Linux のメモリキャッシュをクリアする
        http://futuremix.org/2009/09/clear-linux-memory-cach
        %sysctl -w vm.drop_caches=3

        vm.drop_caches=index
            index : 内容
            1 : ページキャッシュ解放
            2 : ダーティキャッシュ、inode 解放
            3 : 1 かつ 2

        sysctl について

        ページキャッシュとは??
        ダーティキャッシュとは??

        Linux PC でのスペックの確認方法
        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

        OS の確認方法
        cat /etc/redhat-release     redhat 系
        cat /etc/debian_version     Debian 系
        cat /etc/lsb-release        Ubuntu

        様々なハードウェア情報
        cat /proc/cpuinfo
        cat /proc/meminfo

        計測を Block num division size いろいろ試してみよう
        Solaris でも測ってみたいよね -> mmap がはやいらしい

        read size を自動チューニングしたい
        どうにかできないかな??