共 1,393 篇文章
共 6,621 篇文章及评论
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
Archives
帖子来自 tfnew21 
多核研究现状
作者: tfnew21 (3 篇文章) 日期: 八月 26, 2009 在 2:30 下午
评论 (1)
目前,多核技术已经成为最受关注的话题和研究方向。多核体系结构为性能提高和节能计算等领域开辟了新的方向。然而,现在的多核处理器还没有统一的标准,基本上处于探索阶段。核与核之间的连接方式、通讯协调方式、同一处理器中核与核间结构的差异、器件资源分配策略、任务调度策略、节能策略、软硬件协同设计策略等方面都处于研究探索之中。多核必将带来影响整个计算机行业方方面面的巨大变革,包括体系结构研究、嵌入式系统设计和解决方案设计、编译技术、操作系统核心算法、应用软件设计等计算机系统的各个领域。 在单核处理器研究中,主要集中在提高频率,提高指令级并行度等方面。而在多核体系中,更加关注核与核之间的协作、共享资源的分配、提高线程级并行度等方面。 多核处理器必然带来一个问题是,需要提高程序的并行度,因为单线程程序是无法发挥多核处理器的优势的。通过编译优化可以把原先单线程的代码编译成多线程的形式。OpenMP提供了一种方法,程序员根据需要把可以并行处理的代码加上合适的标记,编译器根据这些标记把相应代码编译成多线程的程序段。多线程程序开发涉及到多线程调试的难题,这在多核处理器上会变得更加困难,所以多核体系导致程序开发模式发生巨大变化。 多核处理器上的任务调度也是个新问题,常用的调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率,从而提高系统的性能。目前多数CMP操作系统采用的是基于全局队列的任务调度算法。 如何有效地利用多核技术,对于多核平台上的应用程序员来说是个首要问题。多核时代的到来需要软件开发者必须找出新的开发软件的方法,选择程序执行模型。在多核系统中,核心是通过内存共享数据和通讯。为了充分利用多核,程序需要同时做很多事情。并行程序执行指令的速度将比传统的串行程序要快很多,因为它能将工作负载按照不同需求分配给处理器的不同核心
分类: 博客征文专栏
标签:多核, 高性能
多核软件设计方案
作者: tfnew21 (3 篇文章) 日期: 八月 26, 2009 在 2:29 下午
评论 (0)
对于只关心数据转发的应用,例如IDS系统只需关心数据的解析,告警,然后进行转发。可以让所有的core都作为Simple Executive进行数据处理,每个core都运行的是同一个程序的副本,核间通过共享数据结构,共享内存以及硬件提供的通信机制进行通信。充分发挥出多核的优势,实现高性能的数据处理。 Bootloader支持将不同的应用程序加载到不同的core上,core 0做为control core,core 1-15做为service core。Core 0运行linux kernel,做为控制平面,core 1-15运行应用程序,做为数据平面,完成数据处理及报文转发的协议栈。 Linux 2.6 ...
分类: 博客征文专栏
标签:多核, 软件设计
多核体系结构的发展
作者: tfnew21 (3 篇文章) 日期: 八月 26, 2009 在 2:28 下午
评论 (0)
随着芯片制造工艺的不断进步,从体系结构来看,传统的处理器体系结构技术已面临瓶颈,晶体管的集成度已超过上亿个,很难单纯地通过提高主频来提升性能,而且主频的提高同时也带来功耗的提高。所以并行计算技术应用而生,通过增加计算机中物理处理器的数量,能够有效地利用线程的并行性,实现真正意义上的并行执行。 并行计算机是由一组处理单元组成的,通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。20世纪60年代初,晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术导致了并行计算机的出现。这一时期的并行计算机多是规模不大的共享存储器系统,例如IBM 360。20年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。这些并行特性的应用大大提高了并行计算机系统的性能。 Flynn根据指令流和数据流的不同组织方式,把计算机系统的结构分为以下4类: 单指令流单数据流(Single Instruction stream Single Data stream, SISD) 单指令流多数据流(Single Instruction stream ...
