Home > Archives > 2007-06
2007-06
libaio(Linuxの非同期I/Oライブラリ)の使い方
- 2007-06-05 (Tue)
- Unix

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の使い方が解説してあるところがなかったので、布教も兼ねて書いてみる。
- Comments: 4
- Trackbacks: 0
係り受け解析: 実装
- 2007-06-01 (Fri)
- IS

土日がTOEFLで潰れるらしいので、ちょっとやばいという事で昨日から実装しだしました。今週は急がしすぎ・・・。
AmisというME用の学習機の使い方を覚えるのに朝まで悩み、結局TAのid:u-noさんに助言を貰ってなんとか使えるようになりました。
京大コーパスのパーサーを書いて論文に載っている素性をばしばし追加したら、正解率85%。とりあえず今週はここまででいいかな・・・。正解率を上げるためには、鬼パラメーターチューニング or 方式の根本的な変更が必要そう。
岡野原大先生によるとSVMではカーネルおじさんがパラメーターチューニングをしてくれるらしい。確かにチューニングを問題毎にやってたら萎えるなぁ・・・。大体決められたセットに対して制度が上がったところでCPU実験的な虚しさもあるし(レイトレしか速く動かない)。
来週はAmisに手を入れて速くしたり、「Linear-time dependency analysis for Japanese[Sassano 04]」を読んでみたりしようかと思います。そして最後に高速 & 大規模学習をしてみてどれぐらい正解率が上がるかというのを見てみようかと思います。
- Comments: 0
- Trackbacks: 0
Home > Archives > 2007-06
-
- August 2010
- May 2010
- February 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
