Method for debugging in a parallel computer system and system for the
same
    1.
    发明授权
    Method for debugging in a parallel computer system and system for the same 失效
    并行计算机系统和系统中的调试方法

    公开(公告)号:US5361352A

    公开(公告)日:1994-11-01

    申请号:US617782

    申请日:1990-11-26

    IPC分类号: G06F11/36 G06F11/00

    CPC分类号: G06F11/362

    摘要: In a parallel computer, a method for controlling a debugging process includes the steps of registering identifiers of plural processors into an execution waiting queue in a predetermined order; executing a corresponding program by each of the processors in an order until it is brought into either a waiting state or an end state; registering the identifier of the processor of the waiting state as a last element of the execution waiting queue; and repeating the executing step until there are no executable processors. A program having a bug is determined from the identifiers left in the execution waiting queue. Further, the debugging-process control method further includes outputting trace data during execution of the executing step, the program having the bug is determined from this trace data.

    摘要翻译: 在并行计算机中,用于控制调试过程的方法包括以预定顺序将多个处理器的标识符登记到执行等待队列中的步骤; 通过每个处理器以一个顺序执行相应的程序,直到它处于等待状态或结束状态; 将等待状态的处理器的标识符注册为执行等待队列的最后一个元素; 并重复执行步骤直到没有可执行的处理器。 从执行等待队列中留下的标识符确定具有错误的程序。 此外,调试处理控制方法还包括在执行步骤的执行期间输出跟踪数据,从该跟踪数据确定具有该错误的程序。

    Parallelization compile method and system
    2.
    发明授权
    Parallelization compile method and system 失效
    并行编译方法和系统

    公开(公告)号:US5151991A

    公开(公告)日:1992-09-29

    申请号:US259243

    申请日:1988-10-18

    IPC分类号: G06F9/45

    CPC分类号: G06F8/452

    摘要: In order to make parallel processing of a serial execution type user program automatically and at a high speed without re-coding, an object code is parallelized by detection of the possibility of parallel execution in an iteration unit of a loop, detection of the possibility of parallel execution of each statement in the loop, the interchange of an outer loop by an inner loop of a multiple loop, reduction of the multiple loop to a single loop, inclined coversion for making parallel execution along a wave front plane (line) when sufficient multiplicity is not derived, and the program which is estimated to have the shortest processing time is selected from the granularity, and multiplicity of the object code, the variance of the number of instructions and the proportion of synchronization control at the time of parallelization of the object code.

    摘要翻译: 为了自动和高速地并行处理串行执行型用户程序,无需重新编码,通过检测循环的迭代单元中的并行执行的可能性来并行化目标代码,检测可能性 在循环中并行执行每个语句,通过多个循环的内部循环来交换外部循环,将多个循环减少到单个循环,当足够的时候沿着波形平面(线)并行执行倾斜的转换 不导出多重性,并且从粒度,目标码的多样性,指令数的方差以及在并行化时的同步控制的比例的粒度,多项性中选择估计具有最短处理时间的程序 目标代码。

    Compiling method for vectorizing multiple do-loops in source program
    3.
    发明授权
    Compiling method for vectorizing multiple do-loops in source program 失效
    用于在源程序中矢量化多个do-loop的编译方法

    公开(公告)号:US4833606A

    公开(公告)日:1989-05-23

    申请号:US106120

    申请日:1987-10-07

    IPC分类号: G06F9/45 G06F17/16

    CPC分类号: G06F8/452

    摘要: A compiling method is provided for vectorizing outer sides of multiple loops which are not tight. The method detects variables which are defined in one loop and referenced by another. The information, mapped into a dependence graph, is used to analyze the data dependency of each loop level and expand the source program. The value of the variable is substituted for an appropriate element of the array and the value of the appropriate element of the array is substituted for an original variable. The compiler inserts control statements to assure initial values and end values for the loops are preserved minimizing the size of the working arrays, and vectorizing multiple loops for each loop level.

    摘要翻译: 提供了一种用于对不紧密的多个环的外侧进行矢量化的编译方法。 该方法检测在一个循环中定义并由另一个循环引用的变量。 映射到依赖图中的信息用于分析每个循环级别的数据依赖关系并扩展源程序。 变量的值代替数组的适当元素,数组的适当元素的值被替换为原始变量。 编译器插入控制语句以确保循环的初始值和结束值被保留最小化工作数组的大小,并为每个循环级别矢量化多个循环。

    Method for supporting parallelization of source program
    4.
    发明授权
    Method for supporting parallelization of source program 失效
    支持源程序并行化的方法

    公开(公告)号:US06253371B1

    公开(公告)日:2001-06-26

    申请号:US08017839

    申请日:1993-02-16

    IPC分类号: G06F945

    CPC分类号: G06F8/456

    摘要: In order to generate a source program or an object code which can be executed in parallel efficiency by detecting an independent operation of a large grain size from a program which can not be analyzed by the compiler, a parallelization supporting tool inputs a result of an output of the interprocedural analyzer 120 and the source program. A program of intermediate language is produced by the parse and the program of information of common and dummy argument variables is reflected into the program of intermediate language by the interprocedural variable information read processing. After a control flow analysis and a dataflow analysis have been carried out, dependency unknown variables are extracted and parallelizability conditions are produced. Based on the result of the produced conditions, questions and answers are made with the user or a condition statement is inserted into the source program to execute the program and a decision of parallelizability is made. A source program or a parallelized object program which has been corrected in accordance with a user's request is also produced.

    摘要翻译: 为了生成可以通过从编译器不能分析的程序检测出大的粒度的独立运算来并行执行的源程序或目标代码,并行化支持工具输入输出的结果 的过程间分析器120和源程序。 中间语言程序由解析产生,共同和虚拟参数变量的信息程序通过过程间变量信息读取处理反映到中间语言程序中。 在进行了控制流分析和数据流分析之后,提取了依赖未知变量并产生了并行性条件。 根据生成条件的结果,用户提出问题和答案,或者将条件语句插入到源程序中以执行程序,并进行可并行性决定。 还产生了根据用户请求进行了校正的源程序或并行化对象程序。

    Method of generating from source program object program by which final
values of variables for parallel execution are guaranteed
    5.
    发明授权
    Method of generating from source program object program by which final values of variables for parallel execution are guaranteed 失效
    从源程序对象程序生成用于并行执行的变量的最终值得到保证的方法

    公开(公告)号:US5437034A

    公开(公告)日:1995-07-25

    申请号:US870049

    申请日:1992-04-15

    IPC分类号: G06F9/45

    CPC分类号: G06F8/452

    摘要: In a method of generating an object program for a multiprocessor system from a source program including a loop, there is detected a variable in the loop. For the detected variable, first codes providing a one-dimensional work array are added to the source program. The work array has elements whose the number is predetermined according to a maximum number of parallel processes to be generated for the loop and is shared among the parallel processes. It is determined whether or not the variable is used outside the loop. When it is determined that the variable is not used at any position outside the loop, the source program with the first codes added is compiled to produce the object program, thereby executing the loop in a parallel fashion by the parallel processes using the elements of the work array as a local variable associated with the variable.

    摘要翻译: 在从包括循环的源程序生成多处理器系统的对象程序的方法中,在循环中检测到变量。 对于检测到的变量,提供一维工作阵列的第一代码被添加到源程序。 工作阵列具有根据要为循环生成的并行处理的最大数量预定数量并且在并行处理之间共享的元素。 确定该变量是否在循环外使用。 当确定在循环外的任何位置不使用该变量时,编译加入了第一代码的源程序以产生对象程序,从而通过并行处理使用 工作数组作为与变量关联的局部变量。

    Method for converting an iterative loop of a source program into
parellelly executable object program portions
    6.
    发明授权
    Method for converting an iterative loop of a source program into parellelly executable object program portions 失效
    将源程序的迭代循环转换为可执行对象程序部分的方法

    公开(公告)号:US5067068A

    公开(公告)日:1991-11-19

    申请号:US201772

    申请日:1988-06-02

    IPC分类号: G06F9/45 G06F15/16

    CPC分类号: G06F8/452

    摘要: In a compiling method, whether a variable (induction variable)recurrsively defined during loop iteration is included in an iteratively executed loop portion of a source program is detected. If such a variable is detected, a computation program portion for calculating a value of the variable which the variable should have during loop iteration of an arbitrary loop iteration number is generated. A plurality of parallely executable object program portions each for executing one of a plurality of processing to be executed during loop iteration of a respective loop iteration number of the loop portion is generated. Each of the object program portions includes a portion for executing the generated computation program portion for a respective loop iteration number to calculate a value of the variable for that loop iteration number.

    摘要翻译: 在编译方法中,检测在循环迭代期间重复定义的变量(感应变量)是否包含在源程序的迭代执行循环部分中。 如果检测到这样的变量,则生成用于计算变量在任意循环迭代次数的循环迭代期间应该具有的变量的值的计算程序部分。 生成多个并行执行对象程序部分,每个用于执行循环部分的相应循环迭代次数的循环迭代期间要执行的多个处理中的一个。 每个对象程序部分包括用于执行相应的循环次数的所生成的计算程序部分的部分,以计算该循环迭代次数的变量的值。

    Method for converting a source program of high level language statement
into an object program for a vector processor
    7.
    发明授权
    Method for converting a source program of high level language statement into an object program for a vector processor 失效
    将高级语言语句的源程序转换为向量处理器的对象程序的方法

    公开(公告)号:US4821181A

    公开(公告)日:1989-04-11

    申请号:US947520

    申请日:1986-12-29

    IPC分类号: G06F9/44 G06F9/45 G06F17/16

    CPC分类号: G06F8/41 G06F8/45

    摘要: Vectorization is enabled in a source program having a conditional branch in a loop in which a sequence of definition and reference of data is disordered by the vectorization. A statement reordering part having a conditional statement moving part, and a loop splitting part are provided in an automatic vectorization processing part of a compiler. The statement reordering part reorders the statements by moving the statements in the source grogram to any desired position so that the sequence of definition and reference of data is converted to the vector instructions. If the statement to be moved is a conditional one, the associated condition statement is also copied and moved together with it. The loop splitting part splits the source program loop into a vector loop and a scaler loop when the loop in the source program contains both statements which can be vectorized and statements which can not be vectorized. If a split point is under a condition statement, the condition statement is copied into the scaler loop and the vector loop. As a result, the execution condition for the statements does not change before and after the loop split. In this manner, the portion which can not be vectorized is minimized for the loop which contains the conditional branch.

    摘要翻译: 在具有循环中的条件分支的源程序中启用矢量化,其中数据的定义和参考序列被矢量化无序化。 在编译器的自动矢量化处理部分中提供具有条件语句移动部分的语句重新排序部分和循环分割部分。 语句重新排序部分通过将源文档中的语句移动到任何期望的位置来重新排序语句,使得数据的定义和参考的顺序被转换为向量指令。 如果要移动的语句是有条件的,则相关联的条件语句也将与它一起复制和移动。 当源程序中的循环包含可以向量化的语句和无法向量化的语句时,循环分割部分将源程序循环分解为向量循环和缩放器循环。 如果分割点位于条件语句下,则将条件语句复制到缩放器循环和向量循环中。 结果,语句的执行条件在循环分割之前和之后不会改变。 以这种方式,对于包含条件分支的循环,不能向量化的部分被最小化。

    Method for converting a source program having a loop including a control
statement into an object program
    8.
    发明授权
    Method for converting a source program having a loop including a control statement into an object program 失效
    用于将具有包括控制语句的循环的源程序转换为对象程序的方法

    公开(公告)号:US4807126A

    公开(公告)日:1989-02-21

    申请号:US12991

    申请日:1987-02-10

    IPC分类号: G06F9/45 G06F1/00

    CPC分类号: G06F8/443

    摘要: A method for converting a source program having a loop including a control statement into an object program including the steps of detecting from the statements of a first loop of a source program a control statement (an inductive control statement) having a control expression; detecting based on the control expression a turning form indicating whether a change of a turning number representing a loop iteration count indicates changes from values for a successful branch to values for an unsuccessful branch or vice versa and a turning point type indicating whether the turning number is an initial iteration count, a final iteration count, or an intermediate iteration count of the first loop; generating a string of statements having a loop not including the control statement and generating an execution result identical to an execution result of the first loop based on the first loop, the turning number, the turning form and the turning point type detected on the control statement; and converting the generated string of statements into an object code.

    摘要翻译: 一种用于将具有包括控制语句的循环的源程序转换成对象程序的方法,包括以下步骤:从源程序的第一循环的语句中检测具有控制表达式的控制语句(归纳控制语句); 基于所述控制表达式检测表示循环迭代计数的转向数的改变的转弯表示是否从成功分支的值改变为不成功分支的值或反之亦然,以及指示转向数是否为 初始迭代计数,最终迭代计数或第一循环的中间迭代计数; 生成具有不包括控制语句的循环的语句串,并且基于在控制语句上检测到的第一循环,转弯次数,转弯形式和转折点类型,生成与第一循环的执行结果相同的执行结果 ; 并将生成的语句字符串转换为目标代码。

    Compiling method for determining programs to be executed parallelly by
respective processors in a parallel computer which transfer data with a
data identifier to other processors
    9.
    发明授权
    Compiling method for determining programs to be executed parallelly by respective processors in a parallel computer which transfer data with a data identifier to other processors 失效
    用于确定由并行计算机中的各个处理器并行地执行程序的编译方法,该并行计算机将具有数据标识符的数据传送到其他处理器

    公开(公告)号:US5088034A

    公开(公告)日:1992-02-11

    申请号:US301648

    申请日:1989-01-25

    IPC分类号: G06F15/16 G06F9/44 G06F9/45

    CPC分类号: G06F8/45

    摘要: A compiler for generating from a serially processed type source program described in a high level language the object codes to be executed in parallel by a parallel processor system which is composed of a plurality of processors marked with respective identification numbers and in which inter-processor data transfer system for identifying data for transfer by data identifiers is adopted. The serially executed source program is first translated to programs to be executed in parallel. The inter-processor data transfer processing is extracted from the flow of processings involved in executing the programs for parallel execution resulting from the above-mentioned translation, and all the interprocessor data transfer processings are attached with data identifiers such that no overlap takes place.

    摘要翻译: 一种编译器,用于从由高级语言描述的串行处理型源程序生成由并行处理器系统并行执行的目标代码,该并行处理器系统由标有相应标识号的多个处理器组成,并且其中处理器间数据 采用用于识别用于由数据标识符传送的数据的传送系统。 串行执行的源程序首先被翻译成要并行执行的程序。 从执行由上述翻译产生的并行执行程序所涉及的处理流程中提取处理器间数据传送处理,并且所有处理器间数据传送处理都附加有不发生重叠的数据标识符。