gm300の日記: thread
日記 by
gm300
thread bzip2 書くのあきる。pbzip2 のページをみるとまともそうだけど、ソースはなんかいまいちだ。いまいちに見えるにもかかわらずページの方のグラフはすごいので、うろうろしていた。が、bzip2smp の方をみるとpbzip2 はいまいちだ と書いてある。なんでオイラがいまいちと思ったかと言うと、sleep を使っているからだ。使わなくては実現できる処理もあるし、multi thread の場合、thread がどれか sleep していたからといって全体のperfomace に全く問題がない場合もある。が技術が未熟であるために、単にrace になるのを防ぐためになんとなく待たせることをある。(あった)
さらにseekを使っている点。read の時にシリアル化を行わずにseek で自分の行うべき作業を自主的に探す方法もあるが、それだとpipeを使えないのは自明だ。もしかしてread のシリアル化をできなかった?
http://bzip2smp.sourceforge.net/
bzip2smp の方は、sort の並列処理がなされているようで、libbzip2 に手が入っている。圧縮の本道部分を並列化してあり、本格的だ。だがオイラの予想ではパフォーマンスの上限はそれほど高くないだろう。
bzip2smp とオイラのthread拡張版 bzip の実行時間はだいたい同じ。圧縮された結果はぐうぜんまった同じ長さ。bzip2smp の方の結果は普通のbunzip2 で復号できる。
でも。ここで大問題。SMP のマシンでのテスト全然できんじゃん。いくつかのマシンはリースで戻っていって、残ったものにはgccがなく、自由にinstall できない。
さらにseekを使っている点。read の時にシリアル化を行わずにseek で自分の行うべき作業を自主的に探す方法もあるが、それだとpipeを使えないのは自明だ。もしかしてread のシリアル化をできなかった?
http://bzip2smp.sourceforge.net/
bzip2smp の方は、sort の並列処理がなされているようで、libbzip2 に手が入っている。圧縮の本道部分を並列化してあり、本格的だ。だがオイラの予想ではパフォーマンスの上限はそれほど高くないだろう。
bzip2smp とオイラのthread拡張版 bzip の実行時間はだいたい同じ。圧縮された結果はぐうぜんまった同じ長さ。bzip2smp の方の結果は普通のbunzip2 で復号できる。
でも。ここで大問題。SMP のマシンでのテスト全然できんじゃん。いくつかのマシンはリースで戻っていって、残ったものにはgccがなく、自由にinstall できない。
thread More ログイン