【发布时间】:2016-12-05 21:52:03
【问题描述】:
我已经构建了一个 C++ 代码,但没有想到我以后需要对它进行多线程处理。我现在已经使用 openMP 对 3 个主要的 for 循环进行了多线程处理。以下是性能比较(使用来自 bash 的 time 测量)
单线程
real 5m50.008s
user 5m49.072s
sys 0m0.877s
多线程(24 线程)
real 1m22.572s
user 28m28.206s
sys 0m4.170s
使用 24 个内核将实时时间减少了 4.24 倍。当然,我没想到代码会快 24 倍。我真的不知道会发生什么。
- 是否有经验法则可以让人们预测与单线程相比,使用n 线程的给定代码运行速度会快多少?
- 是否有一般提示可以提高多线程进程的性能?
【问题讨论】:
-
你有一台24核的机器?
-
@pm100 是(24 个逻辑核心)。我不拥有它,它属于我的实验室。
标签: c++ multithreading performance prediction