研究日誌。

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

計算量と実行時間。

2008-07-27 15:19:38 | Weblog
計算量では、演算に対してのみコストが生じ、そのコストもすべて等しい場合を想定しているため、実行時間と大きく異なる場合がある。というのも、メモリロード・ストアのコストや、分岐ミスに対してのコストなど、実際に実装する際に必要となる部分を考慮していないためである。しかしながら、数桁倍の開きがある場合では、計算量を指標にすることは有効であると言える。そのため高速なソルバーを開発するのであれば、最も計算量が小さいものだけではなく、複数のアルゴリズムを解析し、その中から選択するといった方法が望ましいように思える。現在最も高速と思われていてもメモリバンド幅に完全に依存してしまうようなアルゴリズムでは、これからの CPU アーキテクチャの意向に合致しておらず、CPU の改善に対しての恩恵を受けることが難しくなるということも考えておかなければならない。