Systems and methods for implementing work stealing using a configurable separation of stealable and non-stealable work items

    公开(公告)号:US10289454B2

    公开(公告)日:2019-05-14

    申请号:US15132139

    申请日:2016-04-18

    Abstract: A system may perform work stealing using a dynamically configurable separation between stealable and non-stealable work items. The work items may be held in a double-ended queue (deque), and the value of a variable (index) may indicate the position of the last stealable work item or the first non-stealable work item in the deque. A thread may steal a work item only from the portion of another thread's deque that holds stealable items. The owner of a deque may add work items to the deque and may modify the number or percentage of stealable work items, the number or percentage of non-stealable work items, and/or the ratio between stealable and non-stealable work items in the deque during execution. For example, the owner may convert stealable work items to non-stealable work items, or vice versa, in response to changing conditions and/or according to various work-stealing policies.

    Hardware Transactional Memory-Assisted Flat Combining
    15.
    发明申请
    Hardware Transactional Memory-Assisted Flat Combining 审中-公开
    硬件交易记忆辅助平面组合

    公开(公告)号:US20160335117A1

    公开(公告)日:2016-11-17

    申请号:US15154686

    申请日:2016-05-13

    CPC classification number: G06F9/467

    Abstract: An HTM-assisted Combining Framework (HCF) may enable multiple (combiner and non-combiner) threads to access a shared data structure concurrently using hardware transactional memory (HTM). As long as a combiner executes in a hardware transaction and ensures that the lock associated with the data structure is available, it may execute concurrently with other threads operating on the data structure. HCF may include attempting to apply operations to a concurrent data structure utilizing HTM and if the HTM attempt fails, utilizing flat combining within HTM transactions. Publication lists may be used to announce operations to be applied to a concurrent data structure. A combiner thread may select a subset of the operations in the publication list and attempt to apply the selected operations using HTM. If the thread fails in these HTM attempts, it may acquire a lock associated with the data structure and apply the selected operations without HTM.

    Abstract translation: HTM辅助组合框架(HCF)可以使多个(组合器和非组合器)线程使用硬件事务存储器(HTM)同时访问共享数据结构。 只要组合器在硬件事务中执行并确保与数据结构相关联的锁可用,则可以与在数据结构上运行的其他线程同时执行。 HCF可能包括尝试将操作应用于利用HTM的并发数据结构,并且如果HTM尝试失败,则在HTM事务中使用平面组合。 出版物列表可以用于宣布要应用于并发数据结构的操作。 组合器线程可以选择发布列表中的操作的子集,并尝试使用HTM应用所选择的操作。 如果在这些HTM尝试中线程失败,它可以获取与数据结构相关联的锁,并且在没有HTM的情况下应用所选择的操作。

    Systems and Methods for Implementing Work Stealing Using a Configurable Separation of Stealable and Non-Stealable Work Items
    16.
    发明申请
    Systems and Methods for Implementing Work Stealing Using a Configurable Separation of Stealable and Non-Stealable Work Items 审中-公开
    使用可分离的非法偷运作业项目进行工作偷窃的系统和方法

    公开(公告)号:US20160232035A1

    公开(公告)日:2016-08-11

    申请号:US15132139

    申请日:2016-04-18

    CPC classification number: G06F9/5083 G06F9/505 G06F2209/5011

    Abstract: A system may perform work stealing using a dynamically configurable separation between stealable and non-stealable work items. The work items may be held in a double-ended queue (deque), and the value of a variable (index) may indicate the position of the last stealable work item or the first non-stealable work item in the deque. A thread may steal a work item only from the portion of another thread's deque that holds stealable items. The owner of a deque may add work items to the deque and may modify the number or percentage of stealable work items, the number or percentage of non-stealable work items, and/or the ratio between stealable and non-stealable work items in the deque during execution. For example, the owner may convert stealable work items to non-stealable work items, or vice versa, in response to changing conditions and/or according to various work-stealing policies.

    Abstract translation: 系统可以使用在可偷窃和非偷窃工作项之间的可动态配置分隔来执行工作窃取。 工作项目可以保存在双端队列(deque)中,变量(索引)的值可以指示最后一个可窃取的工作项或位于第一个非可窃取工作项的位置。 一个线程只能从另一个线程的持有可窃取物品的deque的部分窃取工作项。 德行的业主可以向工作单位增加工作项目,并可能修改可偷工作项目的数量或百分比,非可偷工作项目的数量或百分比,和/或可偷窃工作项目与非可偷工作项目之间的比例 执行期间deque。 例如,业主可以根据不断变化的条件和/或根据各种工作窃取政策将可转让的工作项目转换为非可窃取的工作项目,反之亦然。

    Systems and methods for implementing work stealing using a configurable separation of stealable and non-stealable work items
    17.
    发明授权
    Systems and methods for implementing work stealing using a configurable separation of stealable and non-stealable work items 有权
    使用可分离的可偷窃和非可偷窃工作项目实施偷窃工作的系统和方法

    公开(公告)号:US09317339B2

    公开(公告)日:2016-04-19

    申请号:US13800097

    申请日:2013-03-13

    CPC classification number: G06F9/505 G06F9/5083 G06F2209/5011

    Abstract: A system may perform work stealing using a dynamically configurable separation between stealable and non-stealable work items. The work items may be held in a double-ended queue (deque), and the value of a variable (index) may indicate the position of the last stealable work item or the first non-stealable work item in the deque. A thread may steal a work item only from the portion of another thread's deque that holds stealable items. The owner of a deque may add work items to the deque and may modify the number or percentage of stealable work items, the number or percentage of non-stealable work items, and/or the ratio between stealable and non-stealable work items in the deque during execution. For example, the owner may convert stealable work items to non-stealable work items, or vice versa, in response to changing conditions and/or according to various work-stealing policies.

    Abstract translation: 系统可以使用在可偷窃和非偷窃工作项之间的可动态配置分隔来执行工作窃取。 工作项目可以保存在双端队列(deque)中,变量(索引)的值可以指示最后一个可窃取的工作项或位于第一个非可窃取工作项的位置。 一个线程只能从另一个线程的持有可窃取物品的deque的部分窃取工作项。 德行的业主可以向工作单位增加工作项目,并可能修改可偷工作项目的数量或百分比,非可偷工作项目的数量或百分比,和/或可偷窃工作项目与非可偷工作项目之间的比例 执行期间deque。 例如,业主可以根据不断变化的条件和/或根据各种工作窃取政策将可转让的工作项目转换为非可窃取的工作项目,反之亦然。

    System and method for implementing scalable contention-adaptive statistics counters
    18.
    发明授权
    System and method for implementing scalable contention-adaptive statistics counters 有权
    用于实现可扩展的争用自适应统计计数器的系统和方法

    公开(公告)号:US09183048B2

    公开(公告)日:2015-11-10

    申请号:US13722811

    申请日:2012-12-20

    CPC classification number: G06F9/4881 G06F9/52 G06F9/526

    Abstract: The systems and methods described herein may implement scalable statistics counters that are adaptive to the amount of contention for the counters. The counters may be accessible within transactions. Methods for determining whether or when to increment the counters in response to initiation of an increment operation and/or methods for updating the counters may be selected dependent on current, recent, or historical amounts of contention. Various contention management policies or retry conditions may be applied to select between multiple methods. One counter may include a precise counter portion that is incremented under low contention and a probabilistic counter portion that is updated under high contention. Amounts by which probabilistic counters are incremented may be contention-dependent. Another counter may include a node identifier portion that encourages consecutive increments by threads on a single node only when under contention. Another counter may be inflated in response to contention for the counter.

    Abstract translation: 本文描述的系统和方法可以实现可自适应于计数器的争用量的可伸缩统计计数器。 柜台可能在交易中可访问。 可以根据当前,最近或历史的争用量来选择用于响应于增量操作的启动来确定是否或何时增加计数器的方法和/或用于更新计数器的方法。 可以应用各种争用管理策略或重试条件来在多种方法之间进行选择。 一个计数器可以包括在低争用下递增的精确计数器部分和在高争用下更新的概率计数器部分。 概率计数器增加的金额可能是争用依赖的。 另一个计数器可以包括节点标识符部分,其仅在竞争时才鼓励单个节点上的线程的连续增量。 响应于柜台的争用,另一个柜台可能会膨胀。

    Systems and methods for adaptive integration of hardware and software lock elision techniques
    19.
    发明授权
    Systems and methods for adaptive integration of hardware and software lock elision techniques 有权
    硬件和软件锁定技术自适应集成的系统和方法

    公开(公告)号:US09183043B2

    公开(公告)日:2015-11-10

    申请号:US14254758

    申请日:2014-04-16

    Abstract: Particular techniques for improving the scalability of concurrent programs (e.g., lock-based applications) may be effective in some environments and for some workloads, but not others. The systems described herein may automatically choose appropriate ones of these techniques to apply when executing lock-based applications at runtime, based on observations of the application in the current environment and with the current workload. In one example, two techniques for improving lock scalability (e.g., transactional lock elision using hardware transactional memory, and optimistic software techniques) may be integrated together. A lightweight runtime library built for this purpose may adapt its approach to managing concurrency by dynamically selecting one or more of these techniques (at different times) during execution of a given application. In this Adaptive Lock Elision approach, the techniques may be selected (based on pluggable policies) at runtime to achieve good performance on different platforms and for different workloads.

    Abstract translation: 用于提高并发程序(例如基于锁的应用程序)的可扩展性的特殊技术在一些环境中以及对于一些工作负载而言可能是有效的,而不是其他工作负载。 基于当前环境中的应用和当前工作负载的观察,本文所述的系统可以自动选择在运行时执行基于锁的应用时应用的这些技术中适当的系统。 在一个示例中,可以集成两种用于提高锁可伸缩性的技术(例如,使用硬件事务存储器的事务锁定检测和乐观软件技术)。 为此目的而构建的轻量级运行时库可以通过在执行给定应用程序期间动态选择这些技术(在不同时间)中的一个或多个技术来调整其方法来管理并发性。 在这种自适应锁定Elision方法中,可以在运行时选择(基于可插拔策略)的技术,以在不同的平台和不同的工作负载下实现良好的性能。

    Systems and Methods for Adaptive Integration of Hardware and Software Lock Elision Techniques
    20.
    发明申请
    Systems and Methods for Adaptive Integration of Hardware and Software Lock Elision Techniques 有权
    硬件和软件锁定Elision技术的自适应集成系统和方法

    公开(公告)号:US20150026688A1

    公开(公告)日:2015-01-22

    申请号:US14254758

    申请日:2014-04-16

    Abstract: Particular techniques for improving the scalability of concurrent programs (e.g., lock-based applications) may be effective in some environments and for some workloads, but not others. The systems described herein may automatically choose appropriate ones of these techniques to apply when executing lock-based applications at runtime, based on observations of the application in the current environment and with the current workload. In one example, two techniques for improving lock scalability (e.g., transactional lock elision using hardware transactional memory, and optimistic software techniques) may be integrated together. A lightweight runtime library built for this purpose may adapt its approach to managing concurrency by dynamically selecting one or more of these techniques (at different times) during execution of a given application. In this Adaptive Lock Elision approach, the techniques may be selected (based on pluggable policies) at runtime to achieve good performance on different platforms and for different workloads.

    Abstract translation: 用于提高并发程序(例如基于锁的应用程序)的可扩展性的特殊技术在一些环境中以及对于一些工作负载而言可能是有效的,而不是其他工作负载。 基于当前环境中的应用和当前工作负载的观察,本文所述的系统可以自动选择在运行时执行基于锁的应用时应用的这些技术中适当的系统。 在一个示例中,可以集成两种用于提高锁可伸缩性的技术(例如,使用硬件事务存储器的事务锁定检测和乐观软件技术)。 为此目的而构建的轻量级运行时库可以通过在执行给定应用程序期间动态选择这些技术(在不同时间)中的一个或多个技术来调整其方法来管理并发性。 在这种自适应锁定Elision方法中,可以在运行时选择(基于可插拔策略)的技术,以在不同的平台和不同的工作负载下实现良好的性能。

Patent Agency Ranking