研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

ロック取得によるコスト削減

2009-07-04 00:13:20 | Weblog
マルチスレッドで実行するブロックがある程度大きくないと、排他制御にかかるコストが馬鹿にならない。最短路ではクエリ並列にしているので、一番小さなグラフ(NY:26万点)でも数ミリ秒ごとなので、コストは問題にならない。特にスレッド開始直後にロック奪い合いになるため、性能低下が大きい。改善策としては、ブロックごとに、実行状態を表すフラグとそれに対するロックを持たせれば良いだろう。