我已经构建了一个C++代码,而不用考虑以后是否需要对它进行多线程处理。我现在已经使用openMP多线程化了3个主循环。下面是性能比较提高多线程的一般技巧(使用C++)
单股(如用time
从bash的测量)
real 5m50.008s
user 5m49.072s
sys 0m0.877s
多线程(24个线程)
real 1m22.572s
user 28m28.206s
sys 0m4.170s
使用24个核心的已通过减少实时是4.24的一个因素。当然,我没有想到代码会快24倍。我真的不知道实际会发生什么。
- 有没有一个经验法则可以让人预测一个给定的代码与一个线程相比能运行多快?
- 为改善多线程进程的性能是否有一些常用技巧?
你有24芯的机器吗? – pm100
@ pm100是(24个逻辑核心)。我不拥有它,它属于我的实验室。 –