stxxl

out-of-core


ウェブ、DBの分野においては、最近BigDataという言葉が流行っているようですが、
BigDataというのは、NOSQLなDBにデータをぶち込んで、
hadoop+mapreduceによって多数のサーバで、膨大な小さなデータを解析することだと思っています。
大きなデータは、DBでは、従来からLarge Objectといいます。

大きなデータは、3Dではメモリに乗らないほど大きい場合があります。
1000万ポリゴンを超えるクラスのデータとかです。
メモリに乗らないのでディスクに乗せるしかありませんが、ディスクは遅いです。
そこで、メモリに入らない分をディスクに乗せて、そこそこ速く動かす研究が従来より行われていたようです。
それがout-of-coreというらしいです。名前かっこいいです。

out-of-core アルゴリズムは、あるアルゴリズムに絞る場合が多いようです。
たとえばpoint cloud library では、octreeのout-of-core実装があります。
他にも、ちょっと前から流行っているsparse voxel octreeもout-of-core実装している人がいたりするようです。
また、HDF-5などの大規模汎用データフォーマットを、メモリマップ的に使ってout-of-coreを実現する場合もあります。
3D方面では、そもそもデータがでかいから、
Out-of-Core Compression for Gigantic Polygon Meshes(http://www.cs.unc.edu/~isenburg/oocc/)ってのも出ているようです。

しかし、このstxxlは単純なSTLコンテナをout-of-core実装しているようです。
速度は置いといて、汎用的なので好感が持てます!

とりあえずビルドはすんなり出来ました。
このコード実行して、↓こんなに文字が出てきます…

D:\externals\stxxl-1.4.0\out\x64\Release>test1.exe
[STXXL-MSG] STXXL v1.4.0 (prerelease/)
[STXXL-ERRMSG] Warning: no config file found.
[STXXL-ERRMSG] Using default disk configuration.
[STXXL-MSG] Disk 'C:\Users\uimac\AppData\Local\Temp\stxxl.tmp' is allocated, spa
ce: 1000 MiB, I/O implementation: wincall autogrow delete_on_exit queue=0
104857600 items sorted ranging from -2147483624 to 2147483636
[STXXL-ERRMSG] Removing disk file: C:\Users\uimac\AppData\Local\Temp\stxxl.tmp

勝手に文字出すなよ…

(調査続行中)




Comments