是否有任何工具可以显示函数中的数据依赖关系

Is there any tool which can show data dependencies within a function

本文关键字:函数 数据依赖 关系 显示 任何 工具 是否      更新时间:2023-10-16

我有这种代码。我感兴趣的是找到循环之间的数据依赖关系,以便我可以猜测是否可以并行运行循环。有什么工具可以帮助我解决这个问题。

void some_func()
{
 for( ... )
 {
  ...
 }
 for( ... )
 {
  ...
 }
 for( ... )
 {
  ...
 }
}

请参阅我们的 DMS 软件再造工具包及其 C 前端计算的数据流结果。(我们的C++战线还没有完全做到这一点)。

如果您只想对一个或两个循环执行此操作,这可能是查看这些依赖项的昂贵方法。 你显然可以用手做到这一点,是的,这很痛苦。

你可以检查这个实验工具ParTools,它在图形环境中显示了C程序中的数据依赖关系。它允许对 C 程序执行配置文件和数据依赖关系进行交互式分析,以促进在手动并行化过程中发现和选择合适的并行化候选者。该流程不采用任何特定的并行化技术,因此可以广泛应用。

我还没有尝试过这个,但bp可能会有所帮助。从文档中:

开发并发、并行且正确运行的软件 设计时通常需要大量的知识和关注 这些。BP 会自动尝试并行化您的某些部分 程序,如果编译器认为值得这样做,它将替换 具有多线程的顺序代码。