需要一些关于使用OpenMP进行并行编程的帮助?

时间:2017-02-17 18:20:13

标签: multithreading parallel-processing openmp multicore

现在,我正在使用多核机器中的OpenMP进行并行编程。我是并行编程的新手。

直到现在我做了以下事情:

使用OpenMP的100万x 1百万次矩阵乘法程序

计算执行时间,改变不同机器上的线程数(如corei5,corei3)

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

总体而言,它是一项绩效分析。现在我想去gem5。现在我能做什么或者对我来说什么是正确的方式?我想知道,我能从这里做些什么。我需要一个想法。

1 个答案:

答案 0 :(得分:0)

  

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

程序的性能和运行时间取决于计算机的体系结构。所以,如果你运行PC的技术规范,你可以推断出来。我猜它是四核处理器 ......

它还可能取决于实际控制流,线程创建开销和类似的其他方面。

您可能采取的后续步骤可能是:

  • 寻找更好的矩阵乘法算法,它具有更低的渐近时间复杂度!
  • 改善当前的执行时间;通过使用gprof ...
  • 等分析工具识别代码的热门部分
  • 探索 openMP 的高级构造,以便从代码中提取最大并行度