Automatic pipeline parallelization of sequential code
    21.
    发明授权
    Automatic pipeline parallelization of sequential code 有权
    自动流水线并行化顺序码

    公开(公告)号:US08949809B2

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

    申请号:US13409536

    申请日:2012-03-01

    CPC classification number: G06F8/443 G06F8/45 G06F8/452

    Abstract: A system and associated method for automatically pipeline parallelizing a nested loop in sequential code over a predefined number of threads. Pursuant to task dependencies of the nested loop, each subloop of the nested loop are allocated to a respective thread. Combinations of stage partitions executing the nested loop are configured for parallel execution of a subloop where permitted. For each combination of stage partitions, a respective bottleneck is calculated and a combination with a minimum bottleneck is selected for parallelization.

    Abstract translation: 一种系统和相关联的方法,用于在预定义数量的线程上自动流水线化序列码中的嵌套循环。 根据嵌套循环的任务依赖关系,将嵌套循环的每个子循环分配给相应的线程。 执行嵌套循环的分段分组的组合被配置为在允许的情况下并行执行子循环。 对于级分段的每个组合,计算相应的瓶颈,并且选择具有最小瓶颈的组合用于并行化。

    Source-to-source transformation for language dialects
    22.
    发明授权
    Source-to-source transformation for language dialects 失效
    语言方言的源到源转换

    公开(公告)号:US08015554B2

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

    申请号:US11388353

    申请日:2006-03-24

    Applicant: Pradeep Varma

    Inventor: Pradeep Varma

    CPC classification number: G06F8/51

    Abstract: An analysis and source-to-source transformation framework covers dialects of programming languages that lack formal definition for all individual dialects. Multiple instantiations of the same compiler front-end tools can be used with different settings to create distinct intermediate forms and maps. Intermediate forms and maps are used in an individual analysis and source-to-source transformation context, and performing the analysis and source-to-source transformation thereupon. A unified tool set is desirably provided, including standard compiler front-end tools and code transformation/generation tools, wherein source code edits are carried out in order to make the source code more amenable to translation to intermediate forms. The analysis results or intermediate forms created by individual tools are used by other tools as well as further analyzed to create a map of the regions of validity and invalidity of the intermediate forms, and tracking the source-code edits performed in order to obtain the same. Among other benefits, this provides a choice of the best tools combination for maximum code analysis coverage.

    Abstract translation: 分析和源到源转换框架涵盖了对所有个别方言缺乏正式定义的编程语言的方言。 相同编译器前端工具的多个实例可以与不同的设置一起使用,以创建不同的中间格式和映射。 中间形式和地图用于个人分析和源到源转换环境,并进行分析和源到源转换。 期望提供统一的工具集,包括标准编译器前端工具和代码转换/生成工具,其中执行源代码编辑以便使源代码更适于翻译成中间形式。 由各种工具创建的分析结果或中间形式由其他工具使用,并进一步分析以创建中间形式的有效性和无效区域的映射,并跟踪执行的源代码编辑以获得相同的 。 除了其他好处之外,这提供了最佳代码分析覆盖的最佳工具组合的选择。

    SYSTEMS AND METHODS FOR BACKWARD-COMPATIBLE CONSTANT-TIME EXCEPTION-PROTECTION MEMORY
    23.
    发明申请
    SYSTEMS AND METHODS FOR BACKWARD-COMPATIBLE CONSTANT-TIME EXCEPTION-PROTECTION MEMORY 有权
    用于后向兼容持续时间异常保护存储器的系统和方法

    公开(公告)号:US20110099429A1

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

    申请号:US12607625

    申请日:2009-10-28

    CPC classification number: G06F11/366

    Abstract: Embodiments of the invention provide a table-free technique for detecting all temporal and spatial memory access errors in programs supporting general pointers. Embodiments of the invention provide such error checking using constant-time operations. Embodiments of the invention rely on fat pointers, whose size is contained within standard scalar sizes (up to two words) so that atomic hardware support for operations upon the pointers is obtained along with meaningful casts in-between pointers and other scalars. Optimized compilation of code becomes possible since the scalarized-for-free encoded pointers get register allocated and manipulated. Backward compatibility is enabled by the scalar pointer sizes, with automatic support provided for encoding and decoding of fat pointers in place for interaction with unprotected code.

    Abstract translation: 本发明的实施例提供了一种用于检测支持通用指针的程序中的所有时间和空间存储器访问错误的无桌面技术。 本发明的实施例使用恒定时间操作来提供这种错误检查。 本发明的实施例依赖于胖指针,其大小包含在标准标量大小(最多两个字)内,从而获得指针上的操作的原子硬件支持以及指针和其他标量之间的有意义的投射。 代码的优化编译成为可能,因为无标量化编码指针获得寄存器分配和操作。 向后兼容性由标量指针大小启用,自动支持为脂肪指针的编码和解码提供了与无保护代码交互的位置。

    Computer program code comparison using lexemes
    24.
    发明授权
    Computer program code comparison using lexemes 有权
    使用词法的计算机程序代码比较

    公开(公告)号:US07823144B2

    公开(公告)日:2010-10-26

    申请号:US11321178

    申请日:2005-12-29

    CPC classification number: G06F8/425

    Abstract: A method, apparatus and computer program product for comparing two computer program codes is disclosed. For each code, a stream of lexemes is generated for the program text of each code. The streams are concatenated in the same order as the program text. The two concatenated streams of lexemes are compared on a language-type by language-type basis to identify lexemes present only in one stream. The comparison derives a set of edit operations including minimal text block moves needed to convert one program code into the other program code.

    Abstract translation: 公开了一种用于比较两个计算机程序代码的方法,装置和计算机程序产品。 对于每个代码,为每个代码的程序文本生成一个词汇流。 流以与程序文本相同的顺序连接。 通过语言类型对语言类型进行两个连结的词汇流进行比较,以确定仅在一个流中存在的词汇。 比较导出一组编辑操作,包括将一个程序代码转换为其他程序代码所需的最小文本块移动。

    System and method for interactive and integrated software development process and phases
    25.
    发明授权
    System and method for interactive and integrated software development process and phases 有权
    用于交互式和集成软件开发过程和阶段的系统和方法

    公开(公告)号:US07721250B2

    公开(公告)日:2010-05-18

    申请号:US11402007

    申请日:2006-04-12

    CPC classification number: G06F8/20

    Abstract: A system (and method, and method for deploying computing infrastructure) for facilitating fixing program development errors found during different phases of program development using different programming tools, such as compilers, linkers, library managers, and debuggers, and can be integrated into a program development environment encompassing all tools. The exemplary aspects of the present invention can detect a qualified set of problems from which to recover with sufficient information, as typically provided by a user or other intelligent or artificial intelligent means, and upon error detection, can initiate a communication with the user (or other support software), to acquire information that could remedy the problem.

    Abstract translation: 一种用于部署计算基础设施的系统(和方法以及部署计算基础设施的方法),用于促进使用不同编程工具(如编译器,链接器,库管理器和调试器)在程序开发的不同阶段发现的程序开发错误,并可以集成到程序中 包含所有工具的开发环境。 本发明的示例性方面可以通过用户或其他智能或人造智能装置通常提供的足够的信息来检测要从中恢复的一组合格的问题,并且在错误检测时,可以发起与用户的通信(或 其他支持软件),获取可以解决问题的信息。

    Managing a cluster of networked resources and resource groups using rule - base constraints in a scalable clustering environment
    26.
    发明授权
    Managing a cluster of networked resources and resource groups using rule - base constraints in a scalable clustering environment 有权
    使用可扩展集群环境中的规则库约束管理网络资源和资源组的集群

    公开(公告)号:US07464147B1

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

    申请号:US09710646

    申请日:2000-11-10

    CPC classification number: G06Q10/04 G06Q10/06

    Abstract: An embodiment of the invention provides a method of managing a cluster of networked resources and resource groups using rule-based constraints. This method includes the step of building a globally optimal cluster configuration of the resources in accordance with the rule-based constraints and a current state of the resources, including identifying for each of the resources and resource groups an availability and quality of service, which are determined by dependencies among the resources and resource groups, resource equivalency, constraints on the resources and network policies. The method comprises the further steps of bringing the cluster of resources on-line in a systematic manner, given the current state of each of the resources and resource groups; and with the cluster of networked resources on-line, determining dynamic dependencies of and configuration infomration about the cluster of resources (i) statically at defined times and (ii) dynamically during cluster operation.

    Abstract translation: 本发明的实施例提供了一种使用基于规则的约束来管理网络资源和资源组的集群的方法。 该方法包括根据基于规则的约束和资源的当前状态构建资源的全局最佳集群配置的步骤,包括为每个资源和资源组识别可用性和服务质量, 由资源和资源组之间的依赖关系决定,资源等价性,对资源和网络政策的限制。 该方法包括以下步骤:考虑到每个资源和资源组的当前状态,系统地使资源集群在线; 并在线联网资源集群,确定资源集群的动态依赖关系和配置信息(i)在定义的时间静态定位,(ii)在集群操作期间动态。

    Minimal Effort Prediction and Minimal Tooling Benefit Assessment for Semi-Automatic Code Porting
    27.
    发明申请
    Minimal Effort Prediction and Minimal Tooling Benefit Assessment for Semi-Automatic Code Porting 审中-公开
    半自动代码移植的最小努力预测和最小工具效益评估

    公开(公告)号:US20080154710A1

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

    申请号:US11614249

    申请日:2006-12-21

    Applicant: Pradeep Varma

    Inventor: Pradeep Varma

    CPC classification number: G06Q10/00

    Abstract: A method of computing effort requirements of porting issues in source code includes estimating the minimal number of code text characters needed to be read by a user when the user is searching for porting issues, estimating the minimal number of context switches needed to be made by the user when shifting from one reading region to another reading region during the searching for the porting issues, and estimating the minimal number of keystrokes needed to be made by the user during searching for the porting issues. In a similar manner, the method involves estimating the minimal number of code text characters, the minimal number of context switches, and the minimal number of keystrokes needed to be made by the user for found porting issues. With this information the method establishes an effort model based on a weighted sum of the minimal number of code text characters, the minimal number of context switches, and the minimal number of keystrokes, for individual porting issues. The weights in the model are identified by porting issue type and user capabilities in handling each porting issue.

    Abstract translation: 计算源代码中移植问题的工作需求的方法包括估计当用户正在搜索移植问题时用户需要读取的代码文本字符的最小数量,估计需要由用户进行的上下文切换的最小数目 用户在搜索移植问题期间从一个读取区域移动到另一个读取区域,以及估计用户在搜索移植问题期间需要进行的最小击键次数。 以类似的方式,该方法包括估计代码文本字符的最小数量,上下文切换的最小数量以及用户为发现的移植问题而需要的最小击键次数。 利用该信息,该方法基于对于个别移植问题的最小数量的代码文本字符,上下文切换的最小数量和最小击键次数的加权和建立努力模型。 通过在处理每个移植问题时移植问题类型和用户能力来识别模型中的权重。

    Software weaving and merging
    28.
    发明申请
    Software weaving and merging 审中-公开
    软件编织和合并

    公开(公告)号:US20070157073A1

    公开(公告)日:2007-07-05

    申请号:US11321176

    申请日:2005-12-29

    Applicant: Pradeep Varma

    Inventor: Pradeep Varma

    CPC classification number: G06F17/218 G06F8/33

    Abstract: There is disclosed transforming an electronic plain text to an electronic anchored text, comprising inserting anchors located between characters in said plain text. Each character has a unique association with a nearest preceding or succeeding anchor. Each anchor serves as a join point and specifies a predetermined state and a predetermined operation. There is also disclosed the weaving and merging of two or more electronic plain texts.

    Abstract translation: 公开了将电子纯文本转换为电子锚定文本,包括插入位于所述纯文本中的字符之间的锚点。 每个角色与最近的前一个或后续锚具有唯一的关联。 每个锚点用作连接点并指定预定状态和预定操作。 还披露了两种或多种电子纯文本的编织和合并。

    Dynamic clients, dynamic partitions, locking, and migration capability for distributed server for real-time collaboration
    29.
    发明授权
    Dynamic clients, dynamic partitions, locking, and migration capability for distributed server for real-time collaboration 有权
    用于实时协作的分布式服务器的动态客户端,动态分区,锁定和迁移功能

    公开(公告)号:US06336134B1

    公开(公告)日:2002-01-01

    申请号:US09476445

    申请日:1999-12-30

    Applicant: Pradeep Varma

    Inventor: Pradeep Varma

    Abstract: A method for building a locking, migration, dynamic clients, and dynamic partitions capable distributed server for a real-time collaboration session supports the synchronous creation and deletion of partitions by clients as well as the addition and withdrawal of clients during a current collaboration session. The method is based on history servers for providing a history of modifications so that a newly-added client can compute the current state of a shared workspace. The history servers cache and granularize intermediate modification sequences so that computation space and time are reduced. The method supports migrating partition server(s), history server(s), a creation/deletion server, and a collaboration server to different machines. Partition(s) can be dynamically locked and unlocked and, in an extension of this procedure, creation and deletion of partition(s) can be pre-announced and supported. Advanced dynamic-partitioning activities like splitting a partition, merging partitions, shifting data from partition to partition are carried out naturally by locking the concerned partitions during the process of execution.

    Abstract translation: 构建用于实时协作会话的分布式服务器的锁定,迁移,动态客户端和动态分区的方法支持客户端同步创建和删除分区,以及在当前协作会话期间添加和退出客户端。 该方法基于用于提供修改历史的历史服务器,使得新添加的客户端可以计算共享工作空间的当前状态。 历史服务器缓存和粒化中间修改序列,从而减少计算空间和时间。 该方法支持将分区服务器,历史服务器,创建/删除服务器和协作服务器迁移到不同的机器。 分区可以动态锁定和解锁,并且在此过程的扩展中,分区的创建和删除可以被预先宣布和支持。 通过在执行过程中锁定相关的分区,可以自然地执行高级动态分区活动,如分割分区,合并分区,将数据从分区转移到分区。

    Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures
    30.
    发明授权
    Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures 失效
    两个无锁定,恒定空间,多(不纯)读取器,单写入器结构

    公开(公告)号:US06304924B1

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

    申请号:US09241932

    申请日:1999-02-02

    Applicant: Pradeep Varma

    Inventor: Pradeep Varma

    CPC classification number: G06F8/458 G06F5/10

    Abstract: Efficient support of synchronization in parallel processing is supported by methods for building two data structures that are optimal in that they permit simultaneous access to multiple readers and one writer without using any synchronization constructs such as locks and/or any special instructions. The structures rely on atomic read and/or write of some simple integral values to an underlying, actual or emulated, shared memory. No copying is required of any reader or writer. Each structure comprises a first-in-first-out (FIFO), constant-space, circular queue in which each reader and writer tracks shared bookkeeping data such as queue pointers. Readers are impure since they too write bookkeeping data. If a position of interest for access is beyond a boundary defining legitimate access, say trying to read an empty queue or write to a full queue, then access to the position is prevented until legitimization occurs. One of the structures can use the space in its queue to full capacity. The other structure can use its queue space only to part capacity. However, it has the advantage that it is simple. It keeps only queue pointers as bookkeeping data. Each constant-space queue can be generalized straightforwardly to a lock-optimal, variable-space queue.

    Abstract translation: 用于构建两个最优的数据结构的方法支持并行处理中的同步的高效支持,因为它们允许同时访问多个读取器和一个写入器而不使用诸如锁和/或任何特殊指令的任何同步结构。 这些结构依赖于对底层的,实际的或仿真的共享内存的原子读和/或写入一些简单的积分值。 任何读者或作家都不需要复制。 每个结构包括先进先出(FIFO),恒定空间循环队列,其中每个读取器和写入器跟踪共享的簿记数据,例如队列指针。 读者是不纯的,因为他们也写入簿记数据。 如果访问感兴趣的位置超出了定义合法访问的边界,则说尝试读取空队列或写入完整队列,则会阻止对该位置的访问,直到发生合法化。 其中一个结构可以将其队列中的空间用于满载。 其他结构只能使用其队列空间来部分容量。 然而,它的优点是简单。 它只保留队列指针作为记账数据。 每个恒定空间队列可以直接推广到锁定最优的可变空间队列。

Patent Agency Ranking