"); //-->
ABB 3BHL001863P0001 界面线程等待来自用户的命令
ABB 3BHL001863P0001 反病毒应用程序的过时版本可能会为扫描进程创建一个新线程,而其图像使用者界面线程等待来自用户的命令(例如,取消扫描)。在这种情况下,多核架构对应用本身没有什么好处,因为单线程承担了所有繁重的工作,并且无法在多个内核之间平衡工作。
编写真正的多线程代码通常需要复杂的线程协调,并且由于线程间共享数据处理的交织,很容易引入微妙且难以发现的错误(参见线程安全).因此,当单线程代码崩溃时,这种代码比单线程代码更难调试。由于消费者对最大限度地利用计算机硬件的需求相对稀少,因此人们缺乏编写消费者级线程化应用的动机。同样,像解码熵编码算法用于视频编****是不可能并行化的,因为生成的每个结果都用于帮助创建熵解码算法的下一个结果。
ABB 3BHL001863P0001 鉴于多核芯片设计越来越受重视,源于处理器时钟速度的任何进一步显著提高所带来的严重散热和功耗问题,软件多线程化以利用这些新芯片的程度可能是未来计算机性能的最大限制。如果开发人员无法设计软件来充分利用多核提供的资源,那么他们最终将达到一个不可逾越的性能上限。
电信市场是最先需要并行数据路径数据包处理新设计的市场之一,因为数据路径和控制平面很快采用了这些多核处理器。这些微处理器将取代[19]基于专有技术的传统网络处理器微码或者微微码。13365909307雄霸张少民
并行编程技术可以直接受益于多核。一些现有的并行编程模型诸如Cilk Plus,OpenMP,OpenHMPP,快速流动斯卡迪姆,平均弹着点,以及占线小时可以在多核平台上使用。英特尔推出了一种新的C++并行抽象,称为TBB。其他研究工作包括代码播放筛选系统克雷的殡仪馆,孙的堡垒,和IBM的X10。
ABB 3BHL001863P0001 多核处理也影响了现代计算软件开发的能力。使用新语言编程的开发人员可能会发现他们的现代语言不支持多核功能。这就需要使用数字图书馆来访问用像C和FORTRAN语言,它执行数学计算的速度比较新的语言如C#。英特尔的MKL和AMD的ACML是用这些本地语言编写的,并利用了多核处理的优势。
在处理器之间平衡应用程序工作负载可能会有问题,尤其是当它们具有不同的性能特征时。有不同的概念模型来处理这个问题,例如使用协调语言和程序构建块(编程库或高阶函数)。对于每种处理器类型,每个模块可以有不同的本机实现。用户只需使用这些抽象进行编程,智能编译器会根据上下文选择最佳实现。[20]
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。