b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

从计算机体系结构到高性能编程实践(1)

电脑杂谈  发布时间:2020-04-16 21:10:45  来源:网络整理

并行计算机性能_高性能计算机的结构_低合金高强度结构钢的性能

首先提出,我推荐一本书“计算机体系结构: 定量研究方法(第五版)”. 建议阅读具有良好英语水平的原始版本.

在大多数情况下,编写程序不需要考虑架构的影响,特别是对于解释语言(例如Python)和在虚拟机上运行的语言(例如Java). 考虑架构并不是很有趣,因为最后一代机器指令不能由自己的应用程序控制.

低合金高强度结构钢的性能_高性能计算机的结构_并行计算机性能

目前,只有与C语言相关的多核高性能编程经验,所以我在这里只讲C语言. 对于C语言程序,如果存在性能瓶颈,那么在优化时,我通常从以下几点开始:

一个系统直截了当地由输入,处理和输出三个点组成.

当存在性能瓶颈时,应首先考虑算法级别,例如为数据排序选择哪种排序算法高性能计算机的结构,如果内存足够用于数据搜索,则可以更改时间,查表,状态的空间机器等,具体算法的选择通常是在做出决定之前根据实际数据进行的.

低合金高强度结构钢的性能_高性能计算机的结构_并行计算机性能

当算法的优化达到其自身能力的极限时高性能计算机的结构,下一步将考虑编译器的优化,主要是通过显式指定编译器提供的一些高级编译选项或扩展函数以使gcc生成更高效CPU指令,例如,在编译时指定O3选项,可能和不太可能相关的分支预测,在for循环中提取公共子表达式,向某些短函数添加内联,等等.

编译器优化选项在耗尽后将继续从操作系统级别进行优化. 通常编写的服务器程序在Linux上运行. 实际上,Linux内核具有许多高级功能,但是Linux发行版本身必须考虑性,因此默认情况下会关闭许多参数功能. 根据您的计算机配置,您可以打开一些具有改进性能的独特参数,例如网络协议堆栈的某些参数,文件系统IO的某些参数以及CPU的高级功能支持的某些参数.

最后,在体系结构级别上,如果需要在体系结构级别上优化程序,通常来说,它是控制每条指令的执行时间,并且数据处理应细化到循环级别. 最好的计算模型之一是网络数据包的处理. 在网络数据包处理系统的开发中也获得了我以前在高性能计算方面的经验. 当时,DPDK不是开源的.

并行计算机性能_低合金高强度结构钢的性能_高性能计算机的结构

首先,简单地计算出网络上传输的最小以太网数据包为64字节,加上物理层所需的8Bytes前同步码以及每两个数据包之间的12Bytes Gap. 对于10Gbps网络,如果要达到线速的处理性能,则可以通过以下公式计算每秒处理的数据包数量:

(10000000000/8)/(64 + 20)= 14880952包/ s

也就是说,每个数据包必须在67ns内处理,否则它将丢失(不考虑网卡DMA的小缓冲区).

高性能计算机的结构_并行计算机性能_低合金高强度结构钢的性能

67ns的概念是什么,很多学生可能都不知道,但是通过比较我们可以看到这次有多短. 互斥锁的时间为25ns,主存储器的访问时间为100ns.

根据上面量化的数据,一旦在处理数据包期间发生高速缓存未命中,则必须从存储器中获取与该数据包相关的信息,然后时间超过67ns,并且发现网卡丢失的数据包. 太残忍了.

Long谈论了很多前言,我觉得我还没有开始谈论关键点. 这是系列文章,将编写一个简单的L2-L7层TCP数据包处理小型系统,从代码级别共享您已掌握的所有性能优化技术,初步估计是30篇文章. 想到的一般主题如下:

我希望我写的文章能给所有人他们想要的东西.

陈阿福说


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-178007-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...