OpenMP线程数的指定与cpu个数有什么关系?求大牛指点

 我来答
Laplas
2012-07-29 · TA获得超过1万个赞
知道大有可为答主
回答量:2680
采纳率:50%
帮助的人:2448万
展开全部
程序在线程数为50的时候效率达到最高,
应该是碰巧了。或者你的各个线程不独立。

我做过的实验,总运算分8份,用8线程,速度最快。
我做过的实验,总运算分16份,用16线程,速度一样快。同时只有8个在跑。
4份:CPU使用率达不到100% 速度也慢。
10份:CPU使用率也达不到100% 速度也慢。

我现在都是分成8份在运算。
追问
我在2核和8核机器上都测试过,但是都不是在线程数等于核数的时候达到最大效果,包括使用MPI也是,在并行效率最高时候的线程数和进程数和核数真的是有关系的吗?或者和算法本身有关系?
追答
我的8个线程是完全独立的,运算量都相等,运算量都够大,
运行时关掉其他程序,同样运算循环5000次,每次测量时间1分钟左右。
然后根据运算时间结果看到,8个线程时效率最高。
Win7/64 + Corei7

其实接近最佳值也就可以了。因为程序还需要稳定和易读。
所以你试验到那个差不多最好就OK了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式