long8手机网址娱乐long8手机网址娱乐

long8唯一官方网站
long88官方网站

面向异种多处理器的全局编译程序

面向异种多处理器的全局编译程序

本发明的目的是无需意识到与异种多处理器的结构一致的并行化,而在短时间内最大限度发挥HCMP1的性能。在异种多处理器系统中,通过用编译程序自动地抽出具有并行性的任务,同时进行从成为处理对象的输入程序抽出能够用专用处理器高效率地处理的部分和处理时间的估计,由此,通过按照PU的特性配置该任务,实施使该多个PU并行、高效率运行的调度。

附图说明

亦即,通过该构成信息,HCMP1如图1所示,用通用处理器CFU×4、信号处理处理器DSP×2、以及可动态再构成处理器(DRP)×2构成,各PU保持本地存储器。此外,作为构成信息,在图4所示的以外,例如也可以考虑指定总线的构成、各PU具有的电力方式的类别等的信息。例如作为总线的网络构成,可以表示双向的的一根总线或者3根总线、环状的总线、纵横连接等。另外有总线事务处理方式(是原子事务处理,还是能够分离总线的要求和应答的分离事务处理)的指定。也可以指定各PE连接哪个总线,或者在采用集群结构的场合指定属于哪个域的总线。

在这样的多处理器系统中,为得到与PU数成比例的运算性能,需要使装载的PU同时运行来处理程序。但是,因为通常的输入程序其处理以时间序列逐次记述的,所以尽管装载多个PU,也不能得到与该多个PU成比例的期待的运算性能。作为为解决该问题的一种方法,需要程序开发者自己考虑程序的并行性,根据使该程序执行的多处理器系统的结构,附加为使用多个PU执行该程序的并行化代码。但是,本方法在PU是几个的系统中有效,但是在将来的集成数十~数千数目的PU的系统中,另外特别是PU是异种构成的HCMP的场合,在开发时间、有效性能方面是不实用的。

图11表示本调度结果的例子。图11对于每一PU以时间轴表示MT的调度结果。图中的斜的影线表示在静态调度中埋入的同步代码。图中的纵的影线表示为进行任务分配而用动态调度生成的调度代码。在本例中因为CPU0进行任务的起动或同步、FV电力控制等的管理,所以最初在CPU0上加载编译程序生成的控制代码550。控制代码开始在CPU0上起动MT1_1。在MT1_1处理结束后,执行编译程序生成的控制代码551,接着要处理的任务是用MT1_2以及MT1_3的下位层的MTG指定的MT1_2_1以及MT1_3_1,前者在CPU0中、后者在DRP0中执行。

编译程序211在宏任务MT的处理成本决定后,从同时解析在数据依从·控制流程解析处理402抽出的MT间的控制流程和数据依从性的结果,决定MT间的并行性,亦即能够最快执行各MT的执行的条件(最快执行条件)(405)。用图表以可视方式表示该最快执行条件的是宏任务图表(MTG)。图10表示解析图3的输入程序200生成的MTG。此外,宏任务间并行性解析结果作为宏任务图表表421在外部存储装置中保存,在后阶段的编译处理中使用。

本发明涉及在由多个异种处理器单元构成的多处理器系统中、生成能够使该多个处理器单元高效动作的执行程序的编译方法以及编译程序。

<动态调度>

接着并行化编译程序211,作为宏任务内的中粒度级的并行性解析,进行循环级并行化(403)。在循环级并行化403中,解析循环的重复(迭代)单位间的数据依从性,判断能否独立处理各迭代,在可能的场合把各迭代分配给多个PU进行并行处理。另外,通过把单一循环分割为多个循环提高并行性,或者通过数据的复制或者数组变量的扩张消除循环间的数据依从性,或者通过融合多个循环为单一的循环减轻循环控制需要的开销等各种方法,实现循环的并行化。

这样在库中使用各种处理器的场合,全局编译程序2也能应对。具体说,如图2c所示,导入各种处理器库230。该库230存储面向各种处理器的执行代码或者控制代码、以及该处理的执行时间这样的成本信息232。用户能够在程序200中以子程序调用的形式调用库230。例如,在图3的输入程序例子中可以和“func3”的子程序调用301同样记述。此时,把成本信息232如图3的“#promga hcmp assign dsp”(300)那样用指示语句在程序中明示,或者后阶段的并行化编译程序PRLCPL211参照各种处理器库的成本信息232。并行化编译程序211以下的处理和图2a、图2b所示的流程同样。

亦即,解析用MTG表现的上位层的MT,例如MT1_2(502)、MT1_3(503)的形状、并行性,分组该MT的处理需要的PU,给有关组分配MT。此外,一个组成为包含为控制有关组内的特定用途处理器(DSP,DRP,BMP)的通用处理器(CPU)的集合。例如在图1所示的HCMP1结构上进行调度的场合,因为CPU是两个,所以把MT1_2和MT1_3分别分组到各一个CPU中。所述MT1_2以及MT1_3内的层次的任务组基本上对于被分组的CPU进行任务的分配。其时,在指定专用处理器的场合,判定在专用处理器中处理任务时该任务的结束时间是否比用CPU执行快,而且在能够判定该组内任务全体的处理时间为最短的场合,给指定的专用处理器分配处理。

欢迎阅读本文章: 洪毓

龙8官网long8

long8唯一官方网站