程序在服务器上相互麻痹(使用openMP和python进行c ++)

时间:2011-06-09 07:50:07

标签: c++ python openmp

我有一个紧急问题,因为我的时间已经不多了:我让我的计算过程在一个有8个内核的服务器上,因此我在我的c ++代码中使用openMP,它运行正常。当然我不是唯一一个使用服务器的人,所以我的容量并不总是800%的CPU。

但现在好几次,有人在机器上开始他的python prog使我和他的编程完全陷入困境:虽然我仍然使用大约500%的CPU,但代码运行时间约为。 100倍慢 - 对我和另一个人来说。 你知道原因是什么,如何预防?

2 个答案:

答案 0 :(得分:5)

这可能有很多原因,例如:

  • 分支预测中的故障率增加
  • 耗尽CPU缓存
  • 填满内存总线
  • 过多的上下文切换(这会对很多事情产生影响,包括之前的所有观点)

答案 1 :(得分:0)

正如EmilVikström所列,有几个原因导致这种瘫痪。我可以通过动态调整可用线程数来解决问题:

omp_set_dynamic(1);

我认为它默认开启。事实并非如此。