用Callgrind分析CFD代码
我正在使用Valgrind + Callgrind对我编写的求解器进行分析。如Valgrind用户手册所述,我已经使用编译器的调试选项编译了代码: “没有调试信息,最好的Valgrind工具将能够做的就是猜测特定代码段属于哪个功能,这将使错误消息和性能分析输出几乎无用。使用-g,您将获得直接指向相关的源代码行。” Valgrind手册 使用调试选项进行编译时,代码的运行速度要慢得多。即使使用调试标志进行编译,即使在很小的情况下,CFD代码也会变得非常缓慢。Valgrind使其速度降低40倍(请参见手册1)。 您使用什么工具进行代码性能分析(性能分析,而不是基准测试)? 您允许代码运行多长时间(统计数据:多少个时间步长)? 大小有多大(如果大小写适合高速缓存,则求解器的速度要快几个数量级,但是我会错过与内存相关的过程)?