Multithreading 使用vagrind使用调用图分析函数之间的数据依赖关系

Multithreading 使用vagrind使用调用图分析函数之间的数据依赖关系,multithreading,valgrind,multicore,callgrind,Multithreading,Valgrind,Multicore,Callgrind,我正在尝试为多核ARM处理器进行多线程编程。我使用valgrind进行分析。我可以从main函数下函数调用的调用图中看到。如何解释函数之间的数据依赖关系?我的两个函数是从主函数分支出来的,我假设这意味着它们之间没有数据依赖关系,可以并行运行,但事实并非如此。有人能用一个例子解释一下或者从哪里知道它吗?Callgrind(及其可视化工具kcachegrind)没有显示程序的哪个部分可以并行运行。 Callgrind是一个分析器:它显示程序的哪个部分正在使用 CPU,或者正在进行大量缓存未命中,或者

我正在尝试为多核ARM处理器进行多线程编程。我使用valgrind进行分析。我可以从main函数下函数调用的调用图中看到。如何解释函数之间的数据依赖关系?我的两个函数是从主函数分支出来的,我假设这意味着它们之间没有数据依赖关系,可以并行运行,但事实并非如此。有人能用一个例子解释一下或者从哪里知道它吗?

Callgrind(及其可视化工具kcachegrind)没有显示程序的哪个部分可以并行运行。 Callgrind是一个分析器:它显示程序的哪个部分正在使用 CPU,或者正在进行大量缓存未命中,或者。。。 kcachegrind可视化调用图以显示此消耗。 如果在main函数和其他函数之间看到一个箭头,则表示 main调用了这些函数

我不知道有什么工具可以分析一个程序并确定什么可以运行 同时

然而,Valgrind有2个工具可以检测多线程中的争用条件 节目。一旦并行化了算法,这些工具就可以检测bug(比如对共享变量的无保护访问)