Memory access assignment for parallel processing architectures
    1.
    发明授权
    Memory access assignment for parallel processing architectures 有权
    并行处理架构的内存访问分配

    公开(公告)号:US08181168B1

    公开(公告)日:2012-05-15

    申请号:US12028007

    申请日:2008-02-07

    IPC分类号: G06F9/445

    摘要: A system comprises a plurality of computation units interconnected by an interconnection network. A method for configuring the system comprises forming subsets of instructions corresponding to different portions of a program, the subsets of instructions being related according to a control flow graph; forming one or more memory analysis regions that include one or more of the subsets of instructions, where each subset of instructions is included in a single memory analysis region; analyzing each memory analysis region to partition memory objects and instructions that access the memory objects into equivalence classes such that instructions within an equivalence class only access objects in the same equivalence class; and assigning memory access instructions a given equivalence class to one of the computation units for execution on the assigned computation unit.

    摘要翻译: 一种系统包括由互连网互连的多个计算单元。 一种用于配置系统的方法包括形成与节目的不同部分相对应的指令子集,所述指令子集根据控制流程图相关; 形成包括指令子集中的一个或多个的一个或多个存储器分析区域,其中每个指令子集包括在单个存储器分析区域中; 分析每个存储器分析区域以将存储器对象和将存储器对象访问为等价类的指令分区,使得等价类中的指令仅访问相同等价类中的对象; 以及将存储器访问指令分配给给定的等价类别到所述计算单元之一,以便在所分配的计算单元上执行。

    Distributing parallelism for parallel processing architectures
    2.
    发明授权
    Distributing parallelism for parallel processing architectures 有权
    分布并行处理架构

    公开(公告)号:US08250556B1

    公开(公告)日:2012-08-21

    申请号:US12028003

    申请日:2008-02-07

    IPC分类号: G06F9/44 G06F9/45

    摘要: A system comprises a plurality of computation units interconnected by an interconnection network. A method for configuring the system comprises receiving an initial partitioning of instructions into initial subsets corresponding to different portions of a program; forming a refined partitioning of the instructions into refined subsets each including one or more of the initial subsets, including determining whether to combine a first subset and a second subset to form a third subset according to a comparison of a communication cost between the first subset and second subset and a load cost of the third subset that is based at least in part on a number of instructions issued per cycle by a computation unit; and assigning each refined subset of instructions to one of the computation units for execution on the assigned computation unit.

    摘要翻译: 一种系统包括由互连网互连的多个计算单元。 一种用于配置系统的方法包括:将指令的初始划分接收到对应于节目的不同部分的初始子集; 将所述指令的精细分割形成为精简子集,所述精化子集包括所述初始子集中的一个或多个,包括根据所述第一子集和第一子集之间的通信成本的比较来确定是否组合第一子集和第二子集以形成第三子集 所述第二子集和所述第三子集的负载成本至少部分地基于每个周期由计算单元发出的指令的数量; 以及将每个经精炼的指令子集分配给所述计算单元之一用于在所分配的计算单元上执行。

    Compiling code for parallel processing architectures based on control flow
    3.
    发明授权
    Compiling code for parallel processing architectures based on control flow 有权
    基于控制流程的并行处理架构编译代码

    公开(公告)号:US08949806B1

    公开(公告)日:2015-02-03

    申请号:US13588141

    申请日:2012-08-17

    摘要: A system comprises a plurality of computation units interconnected by an interconnection network. A method for configuring the system comprises forming subsets of instructions corresponding to different portions of a program, the subsets of instructions being related according to a control flow graph; for each of a first subset of branches in the control flow graph, scheduling a value of an associated branch condition to be broadcast to multiple computation units; for each of a second subset of branches in the control flow graph, representing each instruction dependent on an associated branch condition as a predicated instruction that includes a predicate for computing the associated branch condition; assigning each subset of instructions to one of the computation units for execution on the assigned computation unit; and converting at least some of the predicated instructions in a subset of instructions assigned to a given computation unit into unpredicated instructions that depend on a branch local to the given computation unit.

    摘要翻译: 一种系统包括由互连网互连的多个计算单元。 一种用于配置系统的方法包括形成与节目的不同部分相对应的指令子集,所述指令子集根据控制流程图相关; 对于控制流程图中的第一分支子集中的每一个,将要广播的相关联的分支条件的值调度到多个计算单元; 对于控制流程图中的第二分支子集中的每一个,表示取决于相关联的分支条件的每个指令作为包括用于计算相关联的分支条件的谓词的预测指令; 将每个指令子集分配给所述计算单元之一用于在所分配的计算单元上执行; 以及将分配给给定计算单元的指令的子集中的所述预测指令中的至少一些转换为依赖于给定计算单元本地的分支的非预定指令。

    Communication scheduling for parallel processing architectures
    4.
    发明授权
    Communication scheduling for parallel processing architectures 有权
    并行处理架构的通信调度

    公开(公告)号:US08291400B1

    公开(公告)日:2012-10-16

    申请号:US12028005

    申请日:2008-02-07

    摘要: A system comprises a plurality of computation units interconnected by an interconnection network. A method for configuring the system comprises receiving subsets of instructions corresponding to different portions of a program, each subset assigned to one of the computation units; scheduling instructions in a given subset for execution on the assigned computation unit, including scheduling communication instructions that send to or receive from a different computation unit over the interconnection network; allocating registers in a given computation unit for storing values accessed by instructions in a subset assigned to the given computation unit; and scheduling instructions after allocating registers to account for spills of values stored in allocated register to memory, preserving the order of communication instructions scheduled before allocating registers.

    摘要翻译: 一种系统包括由互连网互连的多个计算单元。 一种用于配置系统的方法包括接收与节目的不同部分相对应的指令子集,每个子​​集被分配给一个计算单元; 在给定子集中调度指令以在所分配的计算单元上执行,包括调度通过所述互连网络发送到不同计算单元或从所述互连网络上的不同计算单元接收的通信指令; 在给定计算单元中分配寄存器,用于存储由分配给给定计算单元的子集中的指令访问的值; 以及在分配寄存器之后调度指令以将存储在分配的寄存器中的值的溢出考虑到存储器,保持在分配寄存器之前调度的通信指令的顺序。

    Compiling code for parallel processing architectures based on control flow
    5.
    发明授权
    Compiling code for parallel processing architectures based on control flow 有权
    基于控制流程的并行处理架构编译代码

    公开(公告)号:US08250555B1

    公开(公告)日:2012-08-21

    申请号:US12028002

    申请日:2008-02-07

    IPC分类号: G06F9/44 G06F9/45

    摘要: A system comprises a plurality of computation units interconnected by an interconnection network. A method for configuring the system comprises forming subsets of instructions corresponding to different portions of a program, the subsets of instructions being related according to a control flow graph; for each of a first subset of branches in the control flow graph, scheduling a value of an associated branch condition to be broadcast to multiple computation units; for each of a second subset of branches in the control flow graph, representing each instruction dependent on an associated branch condition as a predicated instruction that includes a predicate for computing the associated branch condition; assigning each subset of instructions to one of the computation units for execution on the assigned computation unit; and converting at least some of the predicated instructions in a subset of instructions assigned to a given computation unit into unpredicated instructions that depend on a branch local to the given computation unit.

    摘要翻译: 一种系统包括由互连网互连的多个计算单元。 一种用于配置系统的方法包括形成与节目的不同部分相对应的指令子集,所述指令子集根据控制流程图相关; 对于控制流程图中的第一分支子集中的每一个,将要广播的相关联的分支条件的值调度到多个计算单元; 对于控制流程图中的第二分支子集中的每一个,表示取决于相关联的分支条件的每个指令作为包括用于计算相关联的分支条件的谓词的预测指令; 将每个指令子集分配给所述计算单元之一用于在所分配的计算单元上执行; 以及将分配给给定计算单元的指令的子集中的所述预测指令中的至少一些转换为依赖于给定计算单元本地的分支的非预定指令。

    Method for simulating back program execution from a traceback sequence
    6.
    发明授权
    Method for simulating back program execution from a traceback sequence 失效
    从回溯序列模拟程序执行的方法

    公开(公告)号:US07543279B2

    公开(公告)日:2009-06-02

    申请号:US10852935

    申请日:2004-05-25

    IPC分类号: G06F9/44 G06F9/45

    摘要: A program execution data trace is created by instrumenting a program to record value sets during execution and an instruction trace. By simulating instructions either backward or forward from a first instruction associated with a recorded value set to a second instruction according to the instruction trace, a value set is determined for the second instruction. Backward and forward simulation can be combined to complement each other. For backward simulation, a table of simulation instructions is preferably maintained, which associates program instructions encountered in the instruction trace with simulation instructions which reverse the operation of the associated program instructions. Preferably, one or more probes is inserted into the program to save values of particular variables whose value may be difficult to determine. Preferably, the instruction trace is displayed alongside and correlated with the data trace.

    摘要翻译: 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 对于反向模拟,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。

    Method for simulating back program execution from a traceback sequence
    8.
    发明授权
    Method for simulating back program execution from a traceback sequence 失效
    从回溯序列模拟程序执行的方法

    公开(公告)号:US06804814B1

    公开(公告)日:2004-10-12

    申请号:US09474680

    申请日:1999-12-29

    IPC分类号: G06F944

    摘要: A program execution data trace is created by instrumenting a program to record value sets during execution and an instruction trace. By simulating instructions either backward or forward from a first instruction associated with a recorded value set to a second instruction according to the instruction trace, a value set is determined for the second instruction. Backward and forward simulation can be combined to complement each other. For backward simulation, a table of simulation instructions is preferably maintained, which associates program instructions encountered in the instruction trace with simulation instructions which reverse the operation of the of the associated program instructions. Preferably, one or more probes is inserted into the program to save values of particular variables whose value may be difficult to determine. Preferably, the instruction trace is displayed alongside and correlated with the data trace. In one embodiment, the instruction trace is displayed and a value set is determined for an instruction upon a request by the user indicating the instruction for which the value set is desired.

    摘要翻译: 程序执行数据跟踪是通过在程序执行过程中记录数值集和指令跟踪进行测量而创建的。 通过根据指令轨迹从与从设定到第二指令的记录值相关联的第一指令向后或向前模拟指令,为第二指令确定值集合。 后向和前向模拟可以相互补充。 为了进行反向仿真,优选地保持模拟指令表,其将在指令轨迹中遇到的程序指令与反转相关程序指令的操作的模拟指令相关联。 优选地,将一个或多个探针插入到程序中以保存其值可能难以确定的特定变量的值。 优选地,指示轨迹显示在数据轨迹旁边并与之相关联。 在一个实施例中,显示指令轨迹,并且在用户请求时指示针对期望值设置的指令的指令确定值集合。

    Early warning mechanism for enhancing enterprise availability
    9.
    发明授权
    Early warning mechanism for enhancing enterprise availability 失效
    提高企业可用性的预警机制

    公开(公告)号:US06745383B1

    公开(公告)日:2004-06-01

    申请号:US09474679

    申请日:1999-12-29

    IPC分类号: G06F944

    CPC分类号: G06F11/3676 G06F11/3495

    摘要: A computer method for issuing an early warning includes determining, using change and test coverage and control flow and data flow analyses of a program, locations in the program at which to insert early warning (EW) code to monitor for an event. The program is instrumented with EW code which monitors for the event, by inserting EW code at the determined locations. Upon detecting the event, EW code performs an early action warning, or issues an early action. Early warnings are issued when an EW-instrumented block is reached. Issuance of an early warning action can be conditional upon execution of the program in a particular environment, such as a production environment. Issuance of an EW can also be conditional upon executing an untested block of code that was recently modified. The issuing of an early warning can include sending an email, writing into a log file, sending a message to a console, where the message causes the change of a human-perceptible characteristic, placing the program into a wait state, halting the program, sending an alarm to an operator, or triggering a failover. In some embodiments, EW code can be deactivated upon certain conditions. Issuance of an early warning can also occur upon an event such as the execution of a user-inserted assert or warning statement, or before a file is opened, wherein the EW issues if a null pointer about to be passed to a system function. In some embodiments, an EW will issue if the value of an argument to some function exceeds a predetermined range. In various embodiments, the EW code is placed in a loop, and issues an EW if the loop is executed more than a predetermined number of times, or the EW code issues an EW upon the execution of user-marked code, or the EW code issues an EW when the time duration between execution of two points in the program exceeds a predetermined value, or upon the detection of an untested configuration.

    摘要翻译: 用于发布早期警告的计算机方法包括:确定,使用改变和测试覆盖,以及控制程序的流程和数据流分析,以便插入预警(EW)代码来监视事件的程序中的位置。 该程序用EW代码进行测试,EW代码通过在确定的位置插入EW代码来监视事件。 在检测到事件时,EW代码执行早期的动作警告,或发出早期的动作。 当到达EW仪表盘块时,会发出预警。 发布预警措施可以在特定环境(如生产环境)中执行程序的前提。 EW的颁发也可以是执行最近修改的未经验证的代码块的条件。 发出预警可以包括发送电子邮件,写入日志文件,向控制台发送消息,其中消息导致人感知特征的改变,将程序置于等待状态,停止程序, 向操作员发送警报,或触发故障切换。 在一些实施例中,可以在某些条件下停用EW代码。 发生预警也可能发生在诸如执行用户插入的断言或警告声明的事件之后,或者在文件被打开之前,其中如果空指针被传递给系统功能,EW将发出预警。 在一些实施例中,如果某个功能的参数的值超过预定范围,则将发出EW。 在各种实施例中,将EW代码置于循环中,并且如果循环执行多于预定次数则发出EW,或者EW代码在执行用户标记的代码时发出EW,或EW代码 当程序中的两点执行之间的持续时间超过预定值时,或者在检测到未经测试的配置之后发出EW。

    Method for back tracing program execution
    10.
    发明授权
    Method for back tracing program execution 有权
    回溯跟踪程序执行的方法

    公开(公告)号:US06353924B1

    公开(公告)日:2002-03-05

    申请号:US09246619

    申请日:1999-02-08

    IPC分类号: G06F9445

    摘要: A method of back-tracing execution of a computer program, where the computer program comprises a plurality of blocks, comprises instrumenting an original version of the program by adding instrumentation code to some or all of the blocks to form an instrumented program. Instrumentation can be added at the binary or source level, or at link time. The instrumentation code records execution sequence information upon execution of the corresponding instrumented block to create a trace record of the executed program. The execution sequence information for each block comprises a block identifier which identifies the corresponding block. A detailed back-trace is generated, after the program has executed, by replacing each recorded block identifier with program counters associated with each instruction in the corresponding block. The application may comprise several programs or subprograms, in which case separate regions of memory can be maintained. Each region is associated with a program or subprogram or a set of programs or subprograms and stores therein part of the trace record corresponding to the associated set of programs or subprograms. The trace records themselves may be of different types. After execution, the trace record is presented to a user, in the form of assembly code, or more preferably, in the form of source level code. In an alternative embodiment, a summary of the trace record recorded during execution of an instrumented program is presented to a user. Various types of traces can be produced, including a last instruction trace and a first instruction trace.

    摘要翻译: 计算机程序包括多个块的计算机程序的后向跟踪执行方法包括通过向一些或所有块添加仪表代码来对程序的原始版本进行检测以形成检测程序。 仪器可以在二进制或源级别或链接时添加。 仪器代码在执行相应的检测块后记录执行序列信息,以创建执行程序的跟踪记录。 每个块的执行序列信息包括标识相应块的块标识符。 在执行程序之后,通过用与相应块中的每个指令相关联的程序计数器替换每个记录的块标识符来生成详细的后向跟踪。 应用程序可以包括若干程序或子程序,在这种情况下可以维护单独的存储区域。 每个区域与程序或子程序或一组程序或子程序相关联,并在其中存储对应于相关程序或子程序集的跟踪记录的一部分。 跟踪记录本身可能有不同的类型。 在执行之后,跟踪记录以汇编代码的形式呈现给用户,或者更优选地以源级代码的形式呈现给用户。 在替代实施例中,向用户呈现在执行被检测程序期间记录的跟踪记录的摘要。 可以产生各种类型的迹线,包括最后的指令轨迹和第一指令轨迹。