众核(Many Cores)处理器是一种为满足大型并行计算需求而设计的多核处理器,其内部核心数一般在数十到数百的规模,如图5-67 所示。与多核处理器相比,众核处理器追求更高的显式并行度与能效比,结构上倾向于采用更加简单的处理器核心,增加用于各处理器节点通信的路由节点,从而实现更好的扩展性。虽然单核性能不那么高,但由于处理器核心的增加,程序任务并行度大幅增加,使得众核处理器可获得更优的系统整体性能。

众核处理器一般采用片上网络(Network on Chip, NoC)搭建,可实现直接点到点的核间通信。片上网络可以优化全局互连线的分割和共享机制,相对基于全局总线同步和共享存储器通信的多核架构,可大幅减少通信成本,提高通信效率。众核处理器的硬件性能可达到TFlops级别,但在实际使用中如何实现目标软件的任务划分并将划分好的各个子任务映射到相应的处理器节点上,以充分发挥每个处理器的潜力,是对软件编程提出的巨大挑战。中国复旦大学团队研发的16核和24核众核处理器成果已发表于国际固态电路会议上。
目前众核处理器适用的编程模型主要有消息传递接口( Message Passing Interface, MPI)、 开放计算语言( Open Computing Language, OpenCL)、 全局地址空间分区(Partitioned Global Address Space, PGAS)、 参与者模式(Actor Model)和开放多进程( Open Multi-Processing, OpenMP) 等。
目前世界上运行速度最快的超级计算机“神威太湖之光”一 共使用了40 906个SW26010处理器,总处理器核心数为10649 600个。众核处理器未来的发展趋势包括自动并行编译技术、操作系统研究、高可靠性、可测性、片上同步机制、数据共享和分配策略、可配置属性和海量线程管理,应用领域包括生物计算、网络安全、信号处理、网络包处理、图形处理和机器学习等。
