永发信息网

多CPU的利用率如何提高?

答案:4  悬赏:0  手机版
解决时间 2021-01-17 14:49
  • 提问者网友:自食苦果
  • 2021-01-17 08:08
多CPU的利用率如何提高?
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-01-17 08:40
一般一个cpu核心可以搭载两个线程,你根据核心去搭载线程,不要乱放线程。
  还有你有10个线程同时跑耗时操作最少也要4核的cpu,你可以减少线程或者减少线程中的耗时操作。
  如果你是解码或者压缩程序的话那么cpu100%也很正常,如果是socket网络连接你可以看看windows iocp,linux epoll的实现。
全部回答
  • 1楼网友:一袍清酒付
  • 2021-01-17 10:20
双CPU双核提高CPU的利用率,这个只是在多任务条件下,才能显示出它的高性能,如果你的工作站任务不是很多,它当然用的就很少了;
再说CPU的任务调度跟操作系统有很大的关系,你没有办法根据你平时运行任务的特点修改操作系统,所以只能优化软件的设置,具体看你做什么任务了
  • 2楼网友:鱼忧
  • 2021-01-17 10:14
双核CPU的优势就是在运行多任务的情况下才能体现出来,你只运行一个程序那肯定是集中在那一个内核了,不知道您要运行的分析程序是不是可以拆分,如果可以拆分就拆成4个部分,只能单一运行的话没办法提高工作效率的
双核CPU单个内核的效能是固定的,你的数据分析程序都集中在那一个内核上,那你要看CPU的占用率是多少,如果不超过50%那没有必要让做别的操作了,也就是一个手都可以干的活没必要找两个人来干
如果你做数据分析的时候同时杀毒的时候,你立刻就感觉出双核的强大了,一个内核分析数据,一个内核杀毒互相不干扰各干各的一点都卡
有什么不明白的请补充,希望能帮楼主解决一点问题
  • 3楼网友:山河有幸埋战骨
  • 2021-01-17 09:16
楼上两位的答案没有回答到关键上.单任务如果使用的是多线程或多进程程序设计同样能使两个核的利用率比较均衡,达到提高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核上,因此,不管有多少个核,也只能有一个核在发挥作用。
真是怕什么就来什么,目前世界上所存在的软件绝大多数是基于单线程的,这就意味着虽然多核从理论上可以提高效率,但就现在的大多数软件而言,还无福享受这种待遇。"
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯