2017-02-17 71 views
0

现在,我正在使用多核心机器中的OpenMP进行并行编程。我是并行编程的新手。需要关于使用OpenMP的并行编程的一些帮助?

到现在我已经做了以下事情:使用OpenMP

与变化计算执行时间在不同的机器线程的数量

百万X百万矩阵乘法的运算程序(像corei5,corei3)

我已经看到,当没有线程= 4时,它的最小时间需要执行我的代码。 (我不知道为什么)

其总体表现分析。现在我想去gem5。现在我能做什么或对我来说什么是正确的方式?我想知道,我能从这里做什么。我需要一个想法。

回答

0

我已经看到,当没有线程= 4时,它的最小时间需要 执行我的代码。 (我不知道为什么)

程序的性能和运行时间取决于计算机的体系结构。所以可能的话,如果你运行个人电脑的技术规格,你可以推断出来。我猜想这是一个四核处理器 ...

它也可以依赖于实际控制流,线程创建开销和类似的其他方面。

你可能需要可接下来的步骤:

  • 搜索的矩阵乘法更好的算法有更低的时间复杂!
  • 改善当前执行时间;通过识别的使用分析工具像gprof的代码炎热的地方...
  • 探索的OpenMP的先进结构,用于提取最大并行出你的代码