OpenMP4 - 为什么多次调用函数会使它更快

时间:2014-06-16 11:35:11

标签: openmp

所以我目前正在学习openmp4。

我所经历的是,如果我第二次调用一个函数,它会明显加快。 omp块在此函数内部。

在我的例子中,第一个呼叫需要5秒,第二个呼叫需要0,3秒。 我正在使用带有Intel Xeon Phi(60cores 240Threads)的intel-icc。

有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

我认为这是由于OpenMP线程初始化造成的。创建线程团队,并初始化每个线程等。这实际上是一个昂贵的过程。

我不知道你的代码是什么样的,但这也可能是缓存的影响。在第一次,麦克风将开始缓存所需的数据。第二次:数据已经缓存并准备就绪。但在看到代码之前,我无法确认这一点。