线程优化:线程并行度、性能与效率的提升
DOIT原创 崔昊 发表于:13年05月13日 10:55 [原创] DOIT.com.cn
线程优化:线程并行度、性能与效率的提升
回到SPARC T5,我们不难发现,其仍然集成了每核心1个浮点计算单元、每核心8线程的架构,在核心的复杂度上,仍然保持了“SPARC式的优雅平衡”,与此同时,甲骨文公司系统事业部大中华区销售咨询总监肖淑男谈到,甲骨文对SPARC T5的定位很明确,那就是要继续追求线程并行,而不仅仅是指令并行,提高线程的效率、性能也是SPARC T5所关注的重点。
在SPARC T5中,上一代SPARC T4的动态线程技术被延续,这也就意味着,在这一处理器中,由于内核对活动线程动态分配资源,因此没有“单线程模式”和“多线程模式”,而如果通过“关键线程优化”(Critical Thread Optimization)来关闭所有线程,内核的所有资源将全部资源用于运行该唯一线程,其运行性能将最快。
“关键线程优化”得益于SPARC T5处理器与Solaris操作系统的紧密结合,肖淑男表示,S3内核(从Oracle Solaris 10 8/11开始),通过分配一个软件线程单独访问所有的内核硬件资源。这个软件线程被认为是一个“关键线程”,依此可以来优化性能:“Solaris自动发现这种运行机会:当软件线程对CPU利用率很高而且内核数量多于可运行的软件线程时,我们建议用户允许Solaris自动执行关键线程任务。”
事实上,按照甲骨文的设计,超级权限用户可以通过指令通知Solaris,一个特别的软件线程应该是关键线程,而Solaris将把该线程分配给一个内核, 即使可运行的线程数多于内核数。
肖淑男表示,甲骨文对SPARC T5的设计目标,就是通过三点:1、内核数量和Cache翻倍;2、单线程与吞吐量计算的平衡;3、动态线程,来从SPARC T4到T5数倍的性能提升——如果说SPARC T4还是甲骨文在摸索如何设计处理器硬件,那到了SPARC T5,甲骨文对处理器基础设计、性能设计上已经了然于胸了。
基于这样的线程设计,这款乱序执行的SPARC T5不仅保证了线程的并行度,更保证了单线程的性能以及关键业务对处理器(线程)性能的充分利用,正如肖淑男所说:“处理器的并行度不断提高,但内存的性能却没有进步。”增加了内存控制器的SPARC T5加上线程控制技术,在提高单线程性能、线程效率、处理器线程对内存的使用上,都有了一定的提高。
在线程上投入的巨大研发资源、精力,或许是甲骨文对SPARC处理器最好的集成,而硬件分区、逻辑分区等特性也得到了良好的继承。不过,与之前的产品相比,甲骨文也在硬件上进行了一些改进,这其中不仅仅是加入了内存控制器、两个x8的PCIe连接、提高到3.6GHz的处理器频率或是整数16级浮点20级的流水线深度,而是制造了一款“迄今为止最“甲骨文”的SPARC处理器”——当然,在甲骨文的手中,我们不会再看到8个核心共享1个FPU的“惊人”设计(这或许是Sun对互联网市场复苏的一种痴狂?),而是看到更为贴近应用、更为整合软件的设计思路。