在多核平台下面,你的程序能够使用到多核能力的几分之几

简介:
从前程序员只对实现功能感兴趣,  多核平台推出之后,程序员又需要多长一根筋。要不写出来的程序效率差,  又要被使用多核机器的玩家骂了。谁愿意用多花钱买了多核机器,软件却是单线程,只用得到单核的性能。
      “不就是多线程嘛,好办的不得了。我的程序里面本来存在几个线程。调用库的时候,  库里面就 implicit的开了几个线程。这样不就适合多核了吗。”  程序员们如是说。
         殊不知少考虑了一个非常重要的问题。一个线程就相当于一个工人,  是不是工人越多,生产效率就越高。这是典型的是否人多力量大的命题。  答案自然是否定的。
         线程是多了,  但是如果同一时间里面只有一个线程在干活,  线程多有什么用!!!   同一时间里面干活的线程数量被称为  concurrency level. 比如同一时间的干活线程数量是 4个,那么此时的 concurrency level 就是 (在有些分析软件里面是以 0concurrency level 计数起点,于是此时 concurrency level 3 比如 cfinder 就是如此计 concurrency level 的)。  如果 4核机器上, concurrency level4的时间维持得很久,  比如占整个运行时间的 80%  这样的多线程程序是真正对多核机器有效的。
          如果 concurrency level 4的时间,   占整个运行时间的 1% 90%的时间 concurrency level  这样的多线程程序和单线程有区别吗!!!  这样的程序只能用到单核能力,  多核能力基本没有用到,是一定是需要性能调优的。


本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/131491,如需转载请自行联系原作者
相关文章
|
2月前
高性能并行编程与优化 | 第02讲回家作业
本文是关于高性能并行编程与优化课程的第二讲回家作业,包括作业要求、初始运行结果、抄的答案以及改进后的运行结果。作业内容涉及对双链表类`List`的修改,要求避免不必要的拷贝、修复智能指针问题、实现深拷贝构造函数、解释为什么可以删除拷贝赋值函数以及改进`Node`的构造函数。同时,还提供了如何提交作业、设置https代理的链接以及评分规则。
高性能并行编程与优化 | 第02讲回家作业
|
2月前
|
C++
高性能并行编程与优化 | 第01讲回家作业
本文是关于高性能并行编程与优化的回家作业,涉及CMake错误解决、编译问题处理、代码和编译结果分享、使用方法说明以及躺坑记录。
高性能并行编程与优化 | 第01讲回家作业
|
2月前
高性能并行编程与优化 | 第03讲回家作业
本文是关于高性能并行编程与优化课程的第三讲回家作业,包括题目要求、代码答案抄写以及成功运行的截图。
高性能并行编程与优化 | 第03讲回家作业
|
2月前
|
算法 编译器
高性能并行编程与优化 | 第04讲回家作业
本文是关于高性能并行编程与优化课程的第四讲回家作业,包括作业要求、原始代码运行结果、优秀的代码答案以及优化后的运行结果和解析。作业目标是利用所学知识优化多体引力求解器的代码,要求不能使用多线程并行和算法复杂度优化,但可以通过编译器和平台优化来提升性能。
高性能并行编程与优化 | 第04讲回家作业
|
2月前
|
Web App开发 Linux iOS开发
操作系统的演变:从单任务到多核并发
在数字时代的浪潮中,操作系统作为计算机硬件与应用程序之间的桥梁,其发展历史充满了创新与变革。本文将带领读者穿越时空,探索操作系统如何从简单的单任务处理演化为今天能够高效管理多核处理器的复杂系统。我们将一窥各个时代下操作系统的设计哲学,以及它们是如何影响现代计算的方方面面。加入我们的旅程,一起见证技术的力量如何在每次迭代中重塑世界。
40 7
|
3月前
|
人工智能 并行计算 大数据
操作系统的演变之路:从单任务到多任务再到并行计算
本文将探讨操作系统(OS)的发展脉络,着重分析从早期单任务系统到现代多任务和并行处理系统的演进。我们将通过浅显易懂的语言和比喻,揭示这一技术变革如何影响我们的日常生活和工作方式,并展望未来可能的发展趋势。
|
3月前
|
并行计算 开发者 Python
解锁Python多进程编程的超能力:并行计算的魔法与奇迹,探索处理器核心的秘密,让程序性能飞跃!
【8月更文挑战第12天】在Python编程领域,多进程编程是一项关键技能,能有效提升程序效率。本文通过理论与实践结合,深入浅出地介绍了Python中的多进程编程。首先解释了多进程的概念:即操作系统中能够并发执行的多个独立单元,进而提高整体性能。接着重点介绍了`multiprocessing`模块,演示了如何创建和启动进程,以及进程间的通信方式,如队列等。此外,还提到了更高级的功能,例如进程池管理和同步原语等。通过这些实例,读者能更好地理解如何在实际项目中利用多核处理器的优势,同时注意进程间通信和同步等问题,确保程序稳定高效运行。
42 0
|
存储 消息中间件 设计模式
「数据密集型系统搭建」开卷篇|什么是数据密集型系统
「数据密集型系统搭建」开卷篇|什么是数据密集型系统。系统具有数据密集型特点,底层建筑决定上层应用,数据层非常重要涉及的技术选型很多,建造者的终极之路需要突破自身界限完善能力,关注数据,抱紧业务变化。
195 0
|
存储 缓存 负载均衡
cpu架构知识
cpu架构知识
cpu架构知识
|
API 图形学 异构计算
非专业游戏CPU多核性能研究
![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/5ca9074dbfb795155c56ab12dbeeb252.png) 作为一个专业web后端开发,非常业余游戏爱好者,普通硬件退烧者,虽然对游戏研发一窍不通,想对游戏性能的问题探讨下。 ## 游戏性能与多核CPU的疑问 第一个问题,近几年为什么
2230 0