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

Multithreading 需要一些关于使用OpenMP进行并行编程的帮助吗?,multithreading,parallel-processing,openmp,multicore,Multithreading,Parallel Processing,Openmp,Multicore,现在,我正在多核机器中使用OpenMP进行并行编程。我是并行编程的新手 到目前为止,我做了以下几件事: 使用OpenMP的100万x 100万矩阵乘法程序 根据不同机器上的线程数计算执行时间(如corei5、corei3) 我已经看到,当线程数=4时,它是执行代码所需的最短时间。(我不知道为什么) 总的来说,这是一个性能分析。现在我想去gem5。现在我能做什么,或者什么是适合我的正确方法?我想知道,从这里我能做什么。我需要一个主意 我已经看到,当线程数=4时,它是需要的最短时间 执行我的代码。(

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

到目前为止,我做了以下几件事:

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

根据不同机器上的线程数计算执行时间(如corei5、corei3)

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

总的来说,这是一个性能分析。现在我想去gem5。现在我能做什么,或者什么是适合我的正确方法?我想知道,从这里我能做什么。我需要一个主意

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

程序的性能和运行时间取决于计算机的体系结构。所以,如果你仔细检查了你电脑的技术规格,你可能会找到原因。我猜它是一个四核处理器

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

您可能采取的下一步措施是:

  • 寻找一个更好的矩阵乘法算法,它具有更低的渐近时间复杂度
  • 提高当前执行时间;通过使用gprof之类的分析工具识别代码的热点部分
  • 探索openMP的高级结构,从代码中提取最大并行性