为了账号安全,请及时绑定邮箱和手机立即绑定

单机多进程做密集型科学计算靠谱吗?能节省时间吗…刚测试了下 ,发现并没用多大提升

单机多进程做密集型科学计算靠谱吗?能节省时间吗…刚测试了下 ,发现并没用多大提升

梵蒂冈之花 2019-04-16 20:27:13
1个CPU、4个核intel超线程技术,可看到8个核,但我只开4个进程,每个进程负责整个任务的四分之一的计算任务和单个进程,跑起来的效率怎么差不多呢?
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

先给个公式吧。
所需线程数=CPU可用核心数/(1-阻塞系数)
其中计算密集型阻塞系数趋向于0,IO密集趋向于1。具体需要通过实验来确定。
所以,你现在这种情况。
所需线程数=8/(1-0)=8,应该用8个线程来试试。而你这里只用了4个,虽然如此,性能还是应该比单线程要好,因为毕竟由4个核在分担计算量。
但是,你却发现没有多大区别,我只能认为,你没有书写正确的多线程逻辑,造成名义上是多线程,实际上是串行的情况。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 454 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号