Generating local addresses and communication sets for data-parallel
programs
    1.
    发明授权
    Generating local addresses and communication sets for data-parallel programs 失效
    生成数据并行程序的本地地址和通讯组

    公开(公告)号:US5450313A

    公开(公告)日:1995-09-12

    申请号:US217404

    申请日:1994-03-24

    IPC分类号: G06F9/45 G06F15/16

    CPC分类号: G06F8/447 G06F8/45

    摘要: An optimizing compilation process generates executable code which defines the computation and communication actions that are to be taken by each individual processor of a computer having a distributed memory, parallel processor architecture to run a program written in a data-parallel language. To this end, local memory layouts of the one-dimensional and multidimensional arrays that are used in the program are derived from one-level and two-level data mappings consisting of alignment and distribution, so that array elements are laid out in canonical order and local memory space is conserved. Executable code then is generated to produce at program run time, a set of tables for each individual processor for each computation requiring access to a regular section of an array, so that the entries of these tables specify the spacing between successive elements of said regular section resident in the local memory of said processor, and so that all the elements of said regular section can be located in a single pass through local memory using said tables. Further executable code is generated to produce at program run time, another set of tables for each individual processor for each communication action requiring a given processor to transfer array data to another processor, so that the entries of these tables specify the identity of a destination processor to which the array data must be transferred and the location in said destination processor's local memory at which the array data must be stored, and so that all of said array data can be located in a single pass through local memory using these communication tables. And, executable node code is generated for each individual processor that uses the foregoing tables at program run time to perform the necessary computation and communication actions on each individual processor of the parallel computer.

    摘要翻译: 优化编译过程产生可执行代码,其定义将由具有分布式存储器的计算机的每个单独处理器采取的计算和通信动作,并行处理器架构来运行以数据并行语言编写的程序。 为此,在程序中使用的一维和多维数组的本地存储器布局是从由对齐和分布组成的一级和两级数据映射导出的,因此数组元素以规范顺序排列, 本地存储空间是保守的。 然后生成可执行代码以在程序运行时产生用于每个单独处理器的一组表,用于需要访问数组的常规部分的每个计算,使得这些表的条目指定所述常规部分的连续元素之间的间隔 驻留在所述处理器的本地存储器中,并且使得所述常规部分的所有元素可以位于通过使用所述表的本地存储器的单次传递中。 生成进一步的可执行代码以在程序运行时产生用于每个单独处理器的另一组表,用于每个通信动作,要求给定处理器将阵列数据传送到另一个处理器,以便这些表的条目指定目标处理器的标识 必须传送数组数据以及必须存储阵列数据的所述目的地处理器的本地存储器中的位置,并且使得所有所述阵列数据可以位于通过使用这些通信表的本地存储器的单次传递中。 并且,对于在程序运行时使用上述表的每个单独处理器生成可执行节点代码,以在并行计算机的每个单独处理器上执行必要的计算和通信动作。