Home > Archives > 2007-06

2007-06

libaio(Linuxの非同期I/Oライブラリ)の使い方

  • 2007-06-05 (Tue)
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

Linuxで非同期I/Oを行うためのライブラリ「libaio」の使い方を書いてみる事にする。少し昔の話になるが、lighttpdが使用し、スループットを80%も上げたらしい。

TOEFLに向けて転置ファイルについての論文(Inverted files for text search engine [moffat 06])でReading対策をしていたところ、意外とスニペット(検索にヒットした箇所の前後の文章)を作るところが時間がかかるという事を教えてもらったので、適当にそれを例題にしてみる。具体的には以下のようなコードを非同期I/Oを使用して速くなるかどうか見てみる。


for (unsigned int i = 0; i < files.size(); i++) {
  FILE* fp = fopen(files[i].c_str(), "rb");
  if (fp == NULL) continue;
  fseek(fp, offsets[i], SEEK_SET);
  char buf[64];
  size_t nread = fread(buf, 1, 64, fp);
  fclose(fp);
}

ファイルリストとそれに付随するオフセットのリストが与えられた時、各ファイルの指定位置から64 byteづつ読み込むようなプログラムだ。
色々高速化する手段は有るが、日本語でlibaioの使い方が解説してあるところがなかったので、布教も兼ねて書いてみる。

Continue reading

係り受け解析: 実装

  • 2007-06-01 (Fri)
  • IS
  • hatena button
  • hatena count
  • save this page del.icio.us

土日がTOEFLで潰れるらしいので、ちょっとやばいという事で昨日から実装しだしました。今週は急がしすぎ・・・。

AmisというME用の学習機の使い方を覚えるのに朝まで悩み、結局TAのid:u-noさんに助言を貰ってなんとか使えるようになりました。

京大コーパスのパーサーを書いて論文に載っている素性をばしばし追加したら、正解率85%。とりあえず今週はここまででいいかな・・・。正解率を上げるためには、鬼パラメーターチューニング or 方式の根本的な変更が必要そう。

岡野原大先生によるとSVMではカーネルおじさんがパラメーターチューニングをしてくれるらしい。確かにチューニングを問題毎にやってたら萎えるなぁ・・・。大体決められたセットに対して制度が上がったところでCPU実験的な虚しさもあるし(レイトレしか速く動かない)。

来週はAmisに手を入れて速くしたり、「Linear-time dependency analysis for Japanese[Sassano 04]」を読んでみたりしようかと思います。そして最後に高速 & 大規模学習をしてみてどれぐらい正解率が上がるかというのを見てみようかと思います。

Home > Archives > 2007-06

お薦め本
広告
Archives
Categories

Return to page top