APP下载

SW26010 众核任务并行调度系统及其嵌套并行算法应用∗

2021-11-09黎雷生赵海涛吴长茂

软件学报 2021年8期
关键词:排序程序

孙 乔,黎雷生,赵海涛,赵 慧,吴长茂

(中国科学院 软件研究所 并行软件与计算科学实验室,北京 100190)

任务并行模式[1,2]是并行程序设计的一种基本设计模式,在并行计算领域中有着广泛的应用.一个任务是由相关数据及其操作形成的集合[1,3].相互独立的任务可以同时被分派到不同的处理器得以并行处理,从而使程序获得较为理想的并行加速比.相对于朴素的数据并行模式,采用任务并行模式可以更高效地并行化诸如快速排序,二叉树遍历及凸包计算等一系列具有递归结构的算法[4,5].然而在实际应用中,不同任务间往往具有复杂的前驱后继关系,一些任务还可能需要衍生出其他任务,形成任务嵌套(nested task)[1].因此任务并行程序的正确性不仅依赖于各个任务的正确定义,还依赖于任务间恰当的时序.因此若要全盘考虑上述要素,则任务并行程序的设计和实现会有着相当的难度.从而一个通用的支持任务并行模式的运行时框架[6,7](下称:任务并行框架)成为程序员开发任务并行程序的必需.

SW26010(申威26010)CPU 是我国自主研发的一款高性能众核CPU[8].如图1 所示,一片SW26010 CPU 由4 个CG(core group,核组)构成.每组CG 包括1 个控制核心MPE(management processing unit)和64 个CPE(computing processing element).从本质上讲,MPE 是一个通用处理器,负责处理程序的逻辑密集部分和系统资源的控制;众多CPE 则是一些轻量级计算核心,主要负责加速程序的计算密集部分.64 个CPE 被排布成8×8 阵列,每个CPE 可通过唯一的标识或其在阵列中所处的行(列)号进行索引.每个CPE 有程序可……

登录APP查看全文

猜你喜欢

排序程序
排排序
恐怖排序
试论我国未决羁押程序的立法完善
节日排序
刻舟求剑
失能的信仰——走向衰亡的民事诉讼程序
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
恐怖犯罪刑事诉讼程序的完善