是否有任何工具可以在函数中显示数据依赖性

时间:2012-05-26 10:19:01

标签: c++ c

我有这种代码。我感兴趣的是找到循环之间的数据依赖关系,以便我可以猜测如果我可以并行运行循环。是否有任何工具可以帮助我。

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

3 个答案:

答案 0 :(得分:1)

我们的 for data flow results computed及其DMS Software Reengineering ToolkitC Front End。 (我们的C ++前端还不会这样做。)

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

答案 1 :(得分:0)

我还没有尝试过,但bp可能会有所帮助。来自文档:

  

开发并发,并行和正确运行的软件   在设计时通常需要大量的知识和关注   这些。 bp automatically tries to parallelize你的某些部分   程序,如果编译器认为值得这样做,它将被替换   带有多线程的顺序代码。

答案 2 :(得分:0)

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