Procedural Concurrency Graph Generator
    1.
    发明申请
    Procedural Concurrency Graph Generator 有权
    程序并发图生成器

    公开(公告)号:US20120151460A1

    公开(公告)日:2012-06-14

    申请号:US12966867

    申请日:2010-12-13

    IPC分类号: G06F9/45

    CPC分类号: G06F8/45

    摘要: A parallel-code optimization system includes a Procedural Concurrency Graph (PCG) generator. The PCG generator produces an initial PCG of a computer program including parallel code, and determines a refined PCG from the initial PCG by applying concurrency-type refinements and interference-type refinements to the initial PCG. The initial PCG and the refined PCG include nodes and edges connecting pairs of the nodes. The nodes represent defined procedures in the parallel code, and each edge represents a may-happen-in-parallel relation, and is associated with a set of lvalues that represents the immediate interference between the corresponding pair of nodes.

    摘要翻译: 并行代码优化系统包括一个过程并发图(PCG)生成器。 PCG生成器产生包括并行代码的计算机程序的初始PCG,并且通过对初始PCG应用并发型改进和干扰类型细化来确定来自初始PCG的精细PCG。 初始PCG和精细PCG包括连接节点对的节点和边。 节点表示并行代码中的定义的过程,并且每个边表示可并发并行关系,并且与表示相应对节点之间的即时干扰的一组左值相关联。

    OWNERSHIP ACQUIRE POLICY SELECTION
    2.
    发明申请
    OWNERSHIP ACQUIRE POLICY SELECTION 审中-公开
    所有权采购政策选择

    公开(公告)号:US20130205284A1

    公开(公告)日:2013-08-08

    申请号:US13364723

    申请日:2012-02-02

    IPC分类号: G06F9/45

    CPC分类号: G06F8/458 G06F9/467

    摘要: There is provided a computer-implemented method of performing ownership acquire policy selection. The method includes compiling an atomic section to generate an instrumented executable. The instrumented executable is configured to generate a runtime abort graph describing a plurality of computer memory accesses made by the instrumented executable. The method also includes selecting each of a plurality of policies based on the runtime abort graph. The plurality of policies include a first policy and a second policy. The first policy is different from the second policy. The method further includes compiling the atomic section to generate a modified executable. The modified executable is configured to perform the computer memory accesses according to the selected policies.

    摘要翻译: 提供了一种执行所有权获取政策选择的计算机实现方法。 该方法包括编译一个原子部分以生成一个被检测的可执行文件。 经检测的可执行文件被配置为生成描述由被检测的可执行文件进行的多个计算机存储器访问的运行时中止图。 该方法还包括基于运行时中止图选择多个策略中的每一个。 多个策略包括第一策略和第二策略。 第一个政策与第二个政策不同。 该方法还包括编译原子部分以生成修改的可执行文件。 经修改的可执行文件被配置为根据所选择的策略执行计算机存储器访问。

    Logging modifications to a variable in persistent memory
    3.
    发明授权
    Logging modifications to a variable in persistent memory 有权
    记录对持久性内存中的变量的修改

    公开(公告)号:US09002791B2

    公开(公告)日:2015-04-07

    申请号:US13596500

    申请日:2012-08-28

    IPC分类号: G06F17/30 G06F7/00 G06F11/14

    摘要: A log entry is created in persistent memory that represents a modification to a variable that resides in persistent memory. A log entry is created in persistent memory that represents a synchronization operation. A program-order based dynamic ordering relationship is created between two successive log entries within an execution entity. A synchronization-order based dynamic ordering relationship is created between two log entries corresponding to synchronization operations in concurrently executing distinct execution entities of said execution instance.

    摘要翻译: 在持久性内存中创建一个日志条目,表示驻留在持久内存中的变量的修改。 在表示同步操作的持久性内存中创建日志条目。 在执行实体内的两个连续的日志条目之间创建基于程序的动态排序关系。 在同时执行所述执行实例的不同执行实体的同步操作的两个日志条目之间创建基于同步顺序的动态排序关系。

    Identifying globally consistent states in a multithreaded program
    4.
    发明授权
    Identifying globally consistent states in a multithreaded program 有权
    在多线程程序中识别全局一致的状态

    公开(公告)号:US08813042B2

    公开(公告)日:2014-08-19

    申请号:US13441656

    申请日:2012-04-06

    IPC分类号: G06F9/44

    CPC分类号: G06F11/1438 G06F2201/825

    摘要: In a method of identifying a globally consistent state in a multithreaded program, a plurality of locally consistent states is identified, in which a locally consistent state of a thread comprises a set of memory locations and their corresponding data values accessed between points in the multithreaded program where no locks are held. Globally consistent states are identified based at least in part on the locally consistent states.

    摘要翻译: 在识别多线程程序中的全局一致状态的方法中,识别多个本地一致状态,其中线程的本地一致状态包括在多线程程序中的点之间访问的一组存储器位置及其对应的数据值 哪里没有锁。 至少部分地基于局部一致的状态来识别全局一致的状态。

    Determining a conflict in accessing shared resources using a reduced number of cycles
    5.
    发明授权
    Determining a conflict in accessing shared resources using a reduced number of cycles 有权
    确定使用减少的周期数来访问共享资源的冲突

    公开(公告)号:US08364909B2

    公开(公告)日:2013-01-29

    申请号:US12692792

    申请日:2010-01-25

    IPC分类号: G06F13/00

    CPC分类号: G06F9/466

    摘要: Illustrated is a system and method for identifying a potential conflict, using a conflict determination engine, between a first transaction and a second transaction stored in a conflict hash map, the potential conflict based upon a potential accessing of a shared resource common to both the first transaction and the second transaction. The system and method further includes determining an actual conflict, using the conflict determination engine to access the combination of the conflict hash map and the read set hash map, between the first transaction and the second transaction, where a time stamp value of only selected shared locations has changed relative to a previous time stamp value, the time stamp value stored in the read set hash map and accessed using the first transaction.

    摘要翻译: 示出了用于使用冲突确定引擎在存储在冲突散列图中的第一事务和第二事务之间识别潜在冲突的系统和方法,所述潜在冲突基于对第一和第二访问共享的共享资源的潜在访问 交易和第二交易。 该系统和方法还包括使用冲突确定引擎来确定第一事务和第二事务之间的冲突散列映射和读取集合散列映射的组合的实际冲突,其中仅选择共享的时间戳值 位置相对于先前的时间戳值变化,时间戳值存储在读取集合散列图中并使用第一个事务访问。

    Recovery segments
    7.
    发明授权
    Recovery segments 有权
    恢复细分

    公开(公告)号:US08909987B2

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

    申请号:US13458680

    申请日:2012-04-27

    IPC分类号: G06F11/00

    摘要: In one example, a method for implementing recovery segments includes sending an application message from a parent process executed by a first computing device to a child process executed by a second computing device and identifying a dependency created by the application message. This identified dependency is included in a dependence set of the child process and saved. A checkpoint is generated by the parent process and a checkpoint message that includes dependency information is sent from the parent process to the child process. The child process modifies the dependence set according to the dependency information and generates a second checkpoint that is saved in nonvolatile memory of the second computing device. Upon occurrence of a failure of the parent process, the child process reverts to a most recent checkpoint generated by the child process that does not include the effects of processing an orphan message.

    摘要翻译: 在一个示例中,用于实现恢复段的方法包括将由第一计算设备执行的父进程的应用消息发送到由第二计算设备执行的子进程,并识别由应用消息创建的依赖关系。 这个确定的依赖项被包含在子进程的依赖集中并被保存。 检查点由父进程生成,并且包含依赖关系信息的检查点消息从父进程发送到子进程。 子进程根据依赖关系信息修改依赖关系,并生成保存在第二计算装置的非易失性存储器中的第二检查点。 在发生父进程失败时,子进程恢复到由子进程生成的最新检查点,该检查点不包括处理孤立消息的效果。

    RECOVERY SEGMENTS
    8.
    发明申请
    RECOVERY SEGMENTS 有权
    恢复部分

    公开(公告)号:US20130290780A1

    公开(公告)日:2013-10-31

    申请号:US13458680

    申请日:2012-04-27

    IPC分类号: G06F11/14

    摘要: In one example, a method for implementing recovery segments includes sending an application message from a parent process executed by a first computing device to a child process executed by a second computing device and identifying a dependency created by the application message. This identified dependency is included in a dependence set of the child process and saved. A checkpoint is generated by the parent process and a checkpoint message that includes dependency information is sent from the parent process to the child process. The child process modifies the dependence set according to the dependency information and generates a second checkpoint that is saved in nonvolatile memory of the second computing device. Upon occurrence of a failure of the parent process, the child process reverts to a most recent checkpoint generated by the child process that does not include the effects of processing an orphan message.

    摘要翻译: 在一个示例中,用于实现恢复段的方法包括将由第一计算设备执行的父进程的应用消息发送到由第二计算设备执行的子进程,并识别由应用消息创建的依赖关系。 这个确定的依赖项被包含在子进程的依赖集中并被保存。 检查点由父进程生成,并且包含依赖关系信息的检查点消息从父进程发送到子进程。 子进程根据依赖关系信息修改依赖关系,并生成保存在第二计算装置的非易失性存储器中的第二检查点。 在发生父进程失败时,子进程恢复到由子进程生成的最新检查点,该检查点不包括处理孤立消息的效果。

    Determining A Conflict in Accessing Shared Resources Using a Reduced Number of Cycles
    9.
    发明申请
    Determining A Conflict in Accessing Shared Resources Using a Reduced Number of Cycles 有权
    确定使用减少的周期数来访问共享资源的冲突

    公开(公告)号:US20110185359A1

    公开(公告)日:2011-07-28

    申请号:US12692792

    申请日:2010-01-25

    IPC分类号: G06F9/46 G06F12/00

    CPC分类号: G06F9/466

    摘要: Illustrated is a system and method for identifying a potential conflict, using a conflict determination engine, between a first transaction and a second transaction stored in a conflict hash map, the potential conflict based upon a potential accessing of a shared resource common to both the first transaction and the second transaction. The system and method further includes determining an actual conflict, using the conflict determination engine to access the combination of the conflict hash map and the read set hash map, between the first transaction and the second transaction, where a time stamp value of only selected shared locations has changed relative to a previous time stamp value, the time stamp value stored in the read set hash map and accessed using the first transaction.

    摘要翻译: 示出了用于使用冲突确定引擎在存储在冲突散列图中的第一事务和第二事务之间识别潜在冲突的系统和方法,所述潜在冲突基于对第一和第二访问共享的共享资源的潜在访问 交易和第二交易。 该系统和方法还包括使用冲突确定引擎来确定第一事务和第二事务之间的冲突散列映射和读取集合散列映射的组合的实际冲突,其中仅选择共享的时间戳值 位置相对于先前的时间戳值变化,时间戳值存储在读取集合散列图中并使用第一个事务访问。

    Scalable cross-file inlining through locality-based transformation ordering
    10.
    发明申请
    Scalable cross-file inlining through locality-based transformation ordering 失效
    可扩展的跨文件内联通过基于位置的转换排序

    公开(公告)号:US20050097527A1

    公开(公告)日:2005-05-05

    申请号:US10699067

    申请日:2003-10-31

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4443

    摘要: One embodiment disclosed relates to a method of compiling a computer program from a plurality of files of source code. An inline analysis determines which call sites in the plurality of files to make inline. An inline transformation performs the inlining within currently opened files. The transformer dynamically determines the order of inlines independent of the analyzer by taking into account the disk input-output pressure during compilation. The resulting inline order minimizes the input and output of files from and to disk respectively by considering the inline affinity between files and maintains the best run-time performance by preserving the dependences between call sites. During the inline transformation, a determination of which files to open and close is made in dependence on an affinity weighting between the files. The affinity and the dependence relationships are continuously updated in order to generate the best transformation ordering among call sites that ensures compile-time scalability and improved run-time performance.

    摘要翻译: 公开的一个实施例涉及从多个源代码文件编译计算机程序的方法。 内联分析确定多个文件中的哪些呼叫站点内联。 内联转换在当前打开的文件中执行内联。 变压器通过在编译期间考虑磁盘输入 - 输出压力,动态地确定独立于分析仪的内联顺序。 通过考虑文件之间的内联关联性,最终的内联顺序最大限度地减少文件从和从磁盘到磁盘的输入和输出,并通过保留呼叫站点之间的依赖关系来保持最佳的运行时性能。 在内联转换期间,根据文件之间的亲和度加权确定哪些文件要打开和关闭。 不断更新关联性和依赖关系,以便在呼叫站点之间生成最佳的转换顺序,从而确保编译时的可扩展性和改进的运行时性能。