多CPU的利用率如何提高?

现在有一台双CPU双核的工作站,运行数据分析程序,可是发现CPU的利用率一直不高,打开任务管理器,发现大部分的利用率基本上都集中在一个CPU内核上,其他三个CPU内核基本... 现在有一台双CPU双核的工作站,运行数据分析程序,可是发现CPU的利用率一直不高,打开任务管理器,发现大部分的利用率基本上都集中在一个CPU内核上,其他三个CPU内核基本空闲。
请教高手,如何提高CPU的利用率,让其他CPU也一起工作,提高工作的效率???
展开
 我来答
shiqicai
2008-02-02 · TA获得超过432个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:183万
展开全部
楼上两位的答案没有回答到关键上.单任务如果使用的是多线程或多进程程序设计同样能使两个核的利用率比较均衡,达到提高cpu利用率从而减少数据处理所需时间的效果.
主要是因为过去的CPU都是单核的,程序员基本上都没有多核程序设计的概念.很多软件还没有充分的应用多核的思想.
一个程序有的部分很容易分成多线程,比如应用软件的界面和数据处理分成独立的两个线程.但是有的过程很难简单的分成两个线程,其间有许多过去PC上程序员们没有面对过的问题(少数精于网络分布式计算的程序员如google的后台数据系统,才遇到过这些问题,因为这些程序员面临的是组织网络上几万甚至几十万台服务器协同计算),特别是象你所说的数据处理的程序.
这些程序在设计的时候就是按照顺序结构编程的.如ABCD顺序执行,先做完A才能由A任务的结果接着做B,然后再做C,最后做D.而象A,B,C,D这样的原子任务不能由多个CPU同时工作.所以会出现你所说的一个CPU很忙,另一个很闲的情况.
这种情况可以称为pc级软件业的一场风暴.目前仅仅是操作系统和编译器可以对这些程序进行适度的并行优化,从应用软件设计上来说,绝大多数软降工程师还没能做到充分应用多核系统来进行程序设计,而是严重的依赖于编译器和操作系统帮他们做优化.
引用一段多核技术对软件工业的冲击:
"可能所有编写过软件的人都知道,象使用VB、C#、Delphi等语言或开发工具开发程序是非常容易的,只需要在IDE中新建一个工具,再建几个Form,然后拖上一些控件就可完成一个看似功能非常强大的程序。这些程序也许可以完成非常复杂的功能。它们也许可以在以前传统的单核CPU上运行得非常好。但如果这种程序在新问世的多核CPU上运行,所表现出来的效率并不一定有单核CPU的效率高。这并不是程序中的某些算法不适应多核的环境,而是由于这种程序从根本上只使用了一个主线程来运行(在传统的程序中都是由一个Main函数开始执行程序,然后按顺序执行相应的代码),所以同一个程序实例在同一时间只能运行在一个CPU核上,因此,不管有多少个核,也只能有一个核在发挥作用。
真是怕什么就来什么,目前世界上所存在的软件绝大多数是基于单线程的,这就意味着虽然多核从理论上可以提高效率,但就现在的大多数软件而言,还无福享受这种待遇。"
广州市元奥仪器
2024-10-17 广告
如果想了解更多详细信息,可以咨询下广州市元奥仪器有限公司。广州市元奥仪器有限公司是一家主要从事引进欧美先进光电相关领域的仪器设备与提供客户综合系统集成的综合性服务商。我们为您提供各种成像设备与系统产品,CCD相机,高速摄像机,高灵敏度相机,... 点击进入详情页
本回答由广州市元奥仪器提供
用u户名
2018-07-05 · 知道合伙人金融证券行家
用u户名
知道合伙人金融证券行家
采纳数:38752 获赞数:310432
大学毕业,刚进入公司的小职员,在学习前辈的工作经验中。

向TA提问 私信TA
展开全部
  一般一个cpu核心可以搭载两个线程,你根据核心去搭载线程,不要乱放线程。
  还有你有10个线程同时跑耗时操作最少也要4核的cpu,你可以减少线程或者减少线程中的耗时操作。
  如果你是解码或者压缩程序的话那么cpu100%也很正常,如果是socket网络连接你可以看看windows iocp,linux epoll的实现。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友85523aabf
2008-01-27 · TA获得超过924个赞
知道答主
回答量:419
采纳率:0%
帮助的人:0
展开全部
双CPU双核提高CPU的利用率,这个只是在多任务条件下,才能显示出它的高性能,如果你的工作站任务不是很多,它当然用的就很少了;
再说CPU的任务调度跟操作系统有很大的关系,你没有办法根据你平时运行任务的特点修改操作系统,所以只能优化软件的设置,具体看你做什么任务了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dcy1118
2008-01-27 · TA获得超过366个赞
知道答主
回答量:80
采纳率:0%
帮助的人:0
展开全部
双核CPU的优势就是在运行多任务的情况下才能体现出来,你只运行一个程序那肯定是集中在那一个内核了,不知道您要运行的分析程序是不是可以拆分,如果可以拆分就拆成4个部分,只能单一运行的话没办法提高工作效率的
双核CPU单个内核的效能是固定的,你的数据分析程序都集中在那一个内核上,那你要看CPU的占用率是多少,如果不超过50%那没有必要让做别的操作了,也就是一个手都可以干的活没必要找两个人来干
如果你做数据分析的时候同时杀毒的时候,你立刻就感觉出双核的强大了,一个内核分析数据,一个内核杀毒互相不干扰各干各的一点都卡
有什么不明白的请补充,希望能帮楼主解决一点问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式