gm300の日記: bzip2
日記 by
gm300
yet anther parallel bzip2.
freshmeat に2つあるじゃん。freshmeat みるの忘れていたよ。
オイラ版も圧縮部分と復号stand alone はできた。bzip2 のことがまだよく判っていないので、作業メモリを一度づつ開放している。
pbzip2 の方は bunzip2 で復号できるとある。うーむ、踏み込んでいるのね。bzip2 はもしかして内部に符号化辞書を持っていないのだろうか。あるいは辞書の更新を随時できるのか。あるいはpbzipちゃんと lock しながら更新していくのか。始めの2つは考えにくいので最後のケースだとすると、辞書を見るときの排他制御というのは非常に邪魔になるような気がする。辞書の構造がbalanced tree だとすると、追加作業を行う時には他のthread を止めるか、tree の複製を見るようにしないといけない。全部の thread が追加を行おうとすると混乱する。
両方とも pipe をサポートしていないとある。なんか難しいことあったけ? オイラ版は普通にsupport。bzip2smp の方は一部 option が実装していないみたいなことが書いてある。いや、だからオイラはbzip2 のもとの source から始めたんだよ。圧縮部分は従来の bzip2 1.0.4 のsourceから始めて300行くらい書き足しただけなので、使い方はほぼまったく同じ。唯一違うのは、-T option の追加。-T で4 thread 並行モードになる。-T4 とか -Tmax とかにしてもいいけど。thread が足りなければどれだけでも作るという Tmax .. 需要はあるんだろうか。
pthread のprogram の練習にはいいかもしれないが。
-rw-r--r-- 1 x x 9694625 Mar 8 10:58 g.0213.v.bz2
-rw-r--r-- 1 x x 9719870 Mar 8 11:06 g.0213.v.tbz4
で圧縮率はほとんど変わらない。実行時間はオイラのマシンでは同じに見えるな。本当に thread 化しているのだろうか。
もとのbzip2 では fread/fwriteを使っていたが今後は read/write + pread にするか。 sol machin では pread の効果は絶大だったような気がする。I/O 時間の短縮はどうでも良くって、全部のthread が あるいはできるだけ沢山の thread が一気に作業開始できるのが嬉しい。さらに全部一緒に作業終了できるといいけど。こういった(言った?)対称型thread programmingの世界では amdhal の法則と言うのはあまり意味無いように思うがどうよ。F はほぼ0%だ。
freshmeat に2つあるじゃん。freshmeat みるの忘れていたよ。
オイラ版も圧縮部分と復号stand alone はできた。bzip2 のことがまだよく判っていないので、作業メモリを一度づつ開放している。
pbzip2 の方は bunzip2 で復号できるとある。うーむ、踏み込んでいるのね。bzip2 はもしかして内部に符号化辞書を持っていないのだろうか。あるいは辞書の更新を随時できるのか。あるいはpbzipちゃんと lock しながら更新していくのか。始めの2つは考えにくいので最後のケースだとすると、辞書を見るときの排他制御というのは非常に邪魔になるような気がする。辞書の構造がbalanced tree だとすると、追加作業を行う時には他のthread を止めるか、tree の複製を見るようにしないといけない。全部の thread が追加を行おうとすると混乱する。
両方とも pipe をサポートしていないとある。なんか難しいことあったけ? オイラ版は普通にsupport。bzip2smp の方は一部 option が実装していないみたいなことが書いてある。いや、だからオイラはbzip2 のもとの source から始めたんだよ。圧縮部分は従来の bzip2 1.0.4 のsourceから始めて300行くらい書き足しただけなので、使い方はほぼまったく同じ。唯一違うのは、-T option の追加。-T で4 thread 並行モードになる。-T4 とか -Tmax とかにしてもいいけど。thread が足りなければどれだけでも作るという Tmax .. 需要はあるんだろうか。
pthread のprogram の練習にはいいかもしれないが。
-rw-r--r-- 1 x x 9694625 Mar 8 10:58 g.0213.v.bz2
-rw-r--r-- 1 x x 9719870 Mar 8 11:06 g.0213.v.tbz4
で圧縮率はほとんど変わらない。実行時間はオイラのマシンでは同じに見えるな。本当に thread 化しているのだろうか。
もとのbzip2 では fread/fwriteを使っていたが今後は read/write + pread にするか。 sol machin では pread の効果は絶大だったような気がする。I/O 時間の短縮はどうでも良くって、全部のthread が あるいはできるだけ沢山の thread が一気に作業開始できるのが嬉しい。さらに全部一緒に作業終了できるといいけど。こういった(言った?)対称型thread programmingの世界では amdhal の法則と言うのはあまり意味無いように思うがどうよ。F はほぼ0%だ。
bzip2 More ログイン