疎行列の LU 分解を計算する C コードに問題があります。そこで、さまざまな最適化を行った別のルーチンを作成します。行列の非ゼロ要素の構造に応じて、一部の実装は非常に高速になりますが、次の例の行列では遅すぎます。ここで、アプリケーションのプロファイルを作成し、コードがメモリからの新しいデータを待機する場所やキャッシュの使用方法を示すツールが必要です。私はすでに valgrind(cachegrind/callgrind) を試しましたが、オーバーヘッドが大きすぎて、異なる実装のランタイム間の比率が完全に変わりました。
メモリ トラフィックや同様の問題を分析するための他の OpenSource ツール (Linux、BSD) はありますか? カーネル モジュールを使用しないでください。