面向众核系统的多并发优化
并行计算已成为计算机体系结构中的主要范式,主要以多核处理器的形式出现。首先简单了解下串行计算和并行计算概念。
串行计算: 一个问题被分解成为一系列指令;这些指令被顺次执行;所有指令均在一个处理器上被执行;在任何时刻,最多只有一个指令能够被执行。
并行计算: 一个问题被分解成为多个可以同时执行的部分;每个部分进一步被分解成为一系列指令;每个部分的指令可以在不同的处理器上被同时执行。
在一个计算集群种,计算资源包括多处理器/多核(multiple processors/cores)的计算机;或者任意数量的被连接在一起的计算机。例如:NP是一个典型的并行处理系统,每个报文都可以并行处理。
并行处理的唯一目的就是节省时间,度量指标:线性度,或者说加速比(speedup)。加速比Amdahl\'s law :
从理论上讲,一个程序在n 个并行处理机上的执行速度是在单一处理机上执行速度的n 倍。假如一个组件1个核处理的性能是P,k核应该为kP;1个核处理时间为T,K核应该下降为T/K,这是完全线性加速,实际上很难做到,4 cores以上能做到85%的线性度加速比可以算非常优秀了。
所以,并行处理可以在整个系统来考虑,也可以单组件内部来考虑,目的就是回答一个问题:多核能力发挥到极致了吗。那每个模块都应该问一下自己:给你K个核,你的性能能提升K倍吗?
程序并行化的速度受到可以并行化多少程序的限制。如果可以并行化90%的程序,则无论使用多少个处理器,使用并行计算的理论最大加速将是10倍。
在项目实战中,常常可以采用不同方法提升多核性能,今天重点分享何王全老师的“面向众核系统的多核编译优化”,材料比较老,但并行编译知识讲解很全面。
推荐阅读:信创软硬件全景梳理(附PDF下载)
转载申明:转载本号文章请注明作者和来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
更多架构相关技术知识总结请参考“架构师技术全联盟书店”相关电子书(35本技术资料打包汇总详情可通过“阅读原文”获取)。
全店内容持续更新,现下单“架构师技术全店打包汇总(全)”,后续可享全店内容更新“免费”赠阅,价格仅收188元(原总价290元)。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。