Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs
    21.
    发明授权
    Method and system for reducing memory reference overhead associated with threadprivate variables in parallel programs 失效
    用于减少并行程序中与线程私有变量相关联的内存引用开销的方法和系统

    公开(公告)号:US07590977B2

    公开(公告)日:2009-09-15

    申请号:US11250833

    申请日:2005-10-13

    CPC classification number: G06F8/445 G06F8/443 G06F8/453

    Abstract: A computer implemented method, system and computer program product for accessing threadprivate memory for threadprivate variables in a parallel program during program compilation. A computer implemented method for accessing threadprivate variables in a parallel program during program compilation includes aggregating threadprivate variables in the program, replacing references of the threadprivate variables by indirect references, moving address load operations of the threadprivate variables, and replacing the address load operations of the threadprivate variables by calls to runtime routines to access the threadprivate memory. The invention enables a compiler to minimize the runtime routines call times to access the threadprivate variables, thus improving program performance.

    Abstract translation: 一种计算机实现的方法,系统和计算机程序产品,用于在程序编译期间在并行程序中访问线程私有变量的线程私有存储器。 在程序编译过程中,一种用于在并行程序中访问线程私有变量的计算机实现方法包括在程序中聚合线程私有变量,通过间接引用替代线程私有变量的引用,移动线程私有变量的地址加载操作,以及替换 threadprivate变量通过调用运行时程序访问线程私有内存。 本发明使得编译器能够最小化运行时程序调用时间以访问线程私有变量,从而提高程序性能。

    Method and apparatus for improving data cache performance using inter-procedural strength reduction of global objects
    22.
    发明授权
    Method and apparatus for improving data cache performance using inter-procedural strength reduction of global objects 失效
    使用全局对象的程序间强度降低来提高数据高速缓存性能的方法和装置

    公开(公告)号:US07555748B2

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

    申请号:US10930037

    申请日:2004-08-30

    CPC classification number: G06F8/4442

    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to improve data cache performance. During a forward pass, the present invention collects information of global variables and analyzes the usage pattern of global objects to select candidate computations for optimization. During a backward pass, the present invention remaps global objects into smaller size new global objects and generates more cache efficient code by replacing candidate computations with indirect or indexed reference of smaller global objects and inserting store operations to the new global objects for each computation that references the candidate global objects.

    Abstract translation: 通过本发明的机制来提供程序间强度降低以提高数据高速缓存性能。 在正向通过期间,本发明收集全局变量的信息并分析全局对象的使用模式以选择用于优化的候选计算。 在反向传递期间,本发明将全局对象重新映射成更小尺寸的新全局对象,并且通过使用较小全局对象的间接索引引用或索引引用来替换候选计算,并且将引用存储操作插入到新的全局对象中,以引用每个计算 候选全球对象。

    EFFICIENT METHOD OF DATA RESHAPING FOR MULTIDIMENSIONAL DYNAMIC ARRAY OBJECTS IN THE PRESENCE OF MULTIPLE OBJECT INSTANTIATIONS
    23.
    发明申请
    EFFICIENT METHOD OF DATA RESHAPING FOR MULTIDIMENSIONAL DYNAMIC ARRAY OBJECTS IN THE PRESENCE OF MULTIPLE OBJECT INSTANTIATIONS 失效
    多目标动态阵列数据在多目标实现过程中的数据重构的有效方法

    公开(公告)号:US20080091697A1

    公开(公告)日:2008-04-17

    申请号:US11548725

    申请日:2006-10-12

    CPC classification number: G06F12/0253

    Abstract: A method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations. The method includes collecting all alias information using interprocedural point escape analysis, and collecting all shape information using interprocedural shape analysis. The method progresses with selecting the candidate dynamic objects based on alias and shape analysis, and determining the types of data reshaping for the candidate dynamic objects. The method further includes creating objects for selected dynamic objects with multiple object instantiations. The method proceeds by updating the memory allocation operations for the selected dynamic objects and inserting statements to initialize object descriptors. The method further includes creating the copy of the object descriptors for selected dynamic object assignments. The method concludes by replacing the object references by array-indexed references for selected dynamic objects using object descriptors.

    Abstract translation: 在存在多个对象实例化的情况下,用于多维动态数组对象的数据整形方法。 该方法包括使用过程间点逃逸分析来收集所有别名信息,并使用过程间形状分析收集所有形状信息。 该方法通过基于别名和形状分析来选择候选动态对象,并确定为候选动态对象重新整形的类型。 该方法还包括为具有多个对象实例化的所选择的动态对象创建对象。 该方法通过更新所选动态对象的内存分配操作并插入语句来初始化对象描述符。 该方法还包括为所选择的动态对象分配创建对象描述符的副本。 该方法通过使用对象描述符替换对所选动态对象的数组索引引用的对象引用。

    METHOD OF SIMD-IZATION THROUGH DATA RESHAPING, PADDING, AND ALIGNMENT
    24.
    发明申请
    METHOD OF SIMD-IZATION THROUGH DATA RESHAPING, PADDING, AND ALIGNMENT 失效
    通过数据重新绘制,贴图和对齐的SIMD-IZZ方法

    公开(公告)号:US20080052693A1

    公开(公告)日:2008-02-28

    申请号:US11463031

    申请日:2006-08-08

    CPC classification number: G06F8/443

    Abstract: A method for handling Simple Instruction Multiple Data (SIMD) architecture restrictions through data reshaping, padding, and alignment, including: building a global call graph; creating array descriptors for maintaining array attributes; gathering array affinity information; performing global pointer analysis and escape analysis; performing loop-based analysis to identify a SIMD opportunity; building an array affinity graph; performing graph partitioning on the array affinity graph to construct an array reshaping plan; performing data reshaping on the array affinity graph; and performing SIMDization on the array affinity graph wherein SIMDization comprises automatic generation of SIMD code.

    Abstract translation: 一种通过数据整形,填充和对齐来处理简单指令多数据(SIMD)架构限制的方法,包括:构建全局调用图; 创建用于维护数组属性的数组描述符; 收集数组关联信息; 执行全局指针分析和逃逸分析; 执行循环分析以识别SIMD机会; 构建数组关联图; 在阵列关联图上执行图形划分以构造阵列整形计划; 在数组关联图上执行数据整形; 并在阵列亲和度图上执行SIMDization,其中SIMDization包括自动生成SIMD码。

    Method and apparatus for optimizing software program using inter-procedural strength reduction
    25.
    发明申请
    Method and apparatus for optimizing software program using inter-procedural strength reduction 失效
    使用程序间强度降低优化软件程序的方法和装置

    公开(公告)号:US20060048117A1

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

    申请号:US10930038

    申请日:2004-08-30

    CPC classification number: G06F8/443

    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.

    Abstract translation: 通过本发明的机制来优化软件程序来提供程序间强度降低。 在正向通过期间,本发明收集全局变量的信息并分析该信息以选择用于优化的候选计算。 在反向传递期间,本发明使用预先计算的值替代使用成本较低或较弱计算的昂贵的计算,并插入新的全局变量的存储操作,以在昂贵的计算中使用的全局变量的定义点处预先计算昂贵的计算。

    Efficient method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations
    26.
    发明授权
    Efficient method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations 失效
    在存在多个对象实例化的情况下,用于多维动态数组对象的数据重构的高效方法

    公开(公告)号:US08015556B2

    公开(公告)日:2011-09-06

    申请号:US11548725

    申请日:2006-10-12

    CPC classification number: G06F12/0253

    Abstract: A method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations. The method includes collecting all alias information using interprocedural point escape analysis, and collecting all shape information using interprocedural shape analysis. The method progresses with selecting the candidate dynamic objects based on alias and shape analysis, and determining the types of data reshaping for the candidate dynamic objects. The method further includes creating objects for selected dynamic objects with multiple object instantiations. The method proceeds by updating the memory allocation operations for the selected dynamic objects and inserting statements to initialize object descriptors. The method further includes creating the copy of the object descriptors for selected dynamic object assignments. The method concludes by replacing the object references by array-indexed references for selected dynamic objects using object descriptors.

    Abstract translation: 在存在多个对象实例化的情况下,用于多维动态数组对象的数据整形方法。 该方法包括使用过程间点逃逸分析来收集所有别名信息,并使用过程间形状分析收集所有形状信息。 该方法通过基于别名和形状分析来选择候选动态对象,并确定为候选动态对象重新整形的类型。 该方法还包括为具有多个对象实例化的所选择的动态对象创建对象。 该方法通过更新所选动态对象的内存分配操作并插入语句来初始化对象描述符。 该方法还包括为所选择的动态对象分配创建对象描述符的副本。 该方法通过使用对象描述符替换对所选动态对象的数组索引引用的对象引用。

    MAY-CONSTANT PROPAGATION
    27.
    发明申请
    MAY-CONSTANT PROPAGATION 失效
    可持续传播

    公开(公告)号:US20110072419A1

    公开(公告)日:2011-03-24

    申请号:US12888230

    申请日:2010-09-22

    CPC classification number: G06F8/43

    Abstract: May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data.

    Abstract translation: 可能常数传播是一种用于通过忽略可能的死亡和低概率重定义来通过调用图和控制流程图传播常量的技术。 确定与程序代码中的常量相关联的变量。 对包含变量的程序代码的代码段执行执行流概率。 基于程序代码的流程数据计算执行流概率。 至少第一代码段被确定为具有高的执行流概率。 与第一个变量关联的第一个常量通过流数据传播,以产生修改的流数据。

    Method and Apparatus for Optimizing Software Program Using Inter-Procedural Strength Reduction
    28.
    发明申请
    Method and Apparatus for Optimizing Software Program Using Inter-Procedural Strength Reduction 失效
    使用程序间强度降低优化软件程序的方法和装置

    公开(公告)号:US20090106745A1

    公开(公告)日:2009-04-23

    申请号:US12270707

    申请日:2008-11-13

    CPC classification number: G06F8/443

    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.

    Abstract translation: 通过本发明的机制来优化软件程序来提供程序间强度降低。 在正向通过期间,本发明收集全局变量的信息并分析该信息以选择用于优化的候选计算。 在反向传递期间,本发明使用预先计算的值替代使用成本较低或较弱计算的昂贵的计算,并插入新的全局变量的存储操作,以在昂贵的计算中使用的全局变量的定义点处预先计算昂贵的计算。

    DATA SPLITTING FOR RECURSIVE DATA STRUCTURES
    29.
    发明申请
    DATA SPLITTING FOR RECURSIVE DATA STRUCTURES 有权
    数据分析用于重现数据结构

    公开(公告)号:US20090019425A1

    公开(公告)日:2009-01-15

    申请号:US11775848

    申请日:2007-07-10

    CPC classification number: G06F8/44 G06F8/4442 G06F17/30327 G06F17/30598

    Abstract: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.

    Abstract translation: 本发明的实施例提供了一种用于递归数据结构的数据分割的方法,系统和计算机程序产品。 在本发明的一个实施例中,可以提供用于数据分解递归数据结构的方法。 该方法可以包括在源代码内识别递归数据结构类型的数据对象,例如链表,定义多个不同数据字段的递归数据结构类型。 该方法还可以包括将数据对象分组成一些存储池单元,每个单元可以包含相同数量的数据对象。 每个内存池单元都可以看作是数据对象的数组。 该方法可以包括数据分割,其可以是每个不同存储器池单元中的最大阵列分割。 最后,该方法可以包括三种不同的方法,包括字段填充,字段填充和字段分割,以处理数据结构中的不规则字段大小。

    Method for optimizing software program using inter-procedural strength reduction
    30.
    发明授权
    Method for optimizing software program using inter-procedural strength reduction 失效
    使用程序间强度降低优化软件程序的方法

    公开(公告)号:US07472382B2

    公开(公告)日:2008-12-30

    申请号:US10930038

    申请日:2004-08-30

    CPC classification number: G06F8/443

    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.

    Abstract translation: 通过本发明的机制来优化软件程序来提供程序间强度降低。 在正向通过期间,本发明收集全局变量的信息并分析该信息以选择用于优化的候选计算。 在反向传递期间,本发明使用预先计算的值替代使用成本较低或较弱计算的昂贵的计算,并插入新的全局变量的存储操作,以在昂贵的计算中使用的全局变量的定义点处预先计算昂贵的计算。

Patent Agency Ranking