SIMPLE OPTIMISTIC SKIPLIST
    1.
    发明申请
    SIMPLE OPTIMISTIC SKIPLIST 有权
    简单的最佳跳位列表

    公开(公告)号:US20090132563A1

    公开(公告)日:2009-05-21

    申请号:US12165086

    申请日:2008-06-30

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30958 G06F17/30351

    摘要: Apparatus, methods, and computer program products are disclosed for concurrently searching a memory containing a skiplist data structure. The method locates the skiplist data structure in the memory. The skiplist data structure includes a plurality of linked lists related by a skiplist invariant. Furthermore, the plurality of linked lists includes a first-level linked list and one or more higher-level linked lists. The skiplist data structure also includes a plurality of nodes, each of which includes a key field, at least one pointer field, and a lock field, respectively. Each of the plurality of nodes is linked to the first-level linked list through the at least one pointer field and ordered responsive to the key field. The method performs a search operation on the skiplist data structure, while the skiplist data structure is subject to concurrent alteration of the plurality of nodes by a plurality of execution threads that are configured to maintain the skiplist invariant and returns a result of the search operation.

    摘要翻译: 公开了用于同时搜索包含滑雪板数据结构的存储器的装置,方法和计算机程序产品。 该方法将skiplist数据结构定位在内存中。 滑雪板数据结构包括由滑雪板不变量相关联的多个链接列表。 此外,多个链接列表包括第一级链接列表和一个或多个更高级别的链接列表。 滑雪板数据结构还包括多个节点,每个节点分别包括密钥字段,至少一个指针字段和锁定字段。 所述多个节点中的每一个通过所述至少一个指针字段链接到所述第一级链接列表,并响应于所述密钥字段排序。 该方法对滑雪板数据结构执行搜索操作,而滑雪板数据结构由多个执行线程进行多个节点的并发改变,所述多个执行线程被配置为维护滑雪板不变量并返回搜索操作的结果。

    Simple optimistic skiplist
    2.
    发明授权
    Simple optimistic skiplist 有权
    简单的乐观滑雪板

    公开(公告)号:US08375062B2

    公开(公告)日:2013-02-12

    申请号:US12165086

    申请日:2008-06-30

    IPC分类号: G06F7/00 G06F17/30

    CPC分类号: G06F17/30958 G06F17/30351

    摘要: Apparatus, methods, and computer program products are disclosed for concurrently searching a memory containing a skiplist data structure. The method locates the skiplist data structure in the memory. The skiplist data structure includes a plurality of linked lists related by a skiplist invariant. Furthermore, the plurality of linked lists includes a first-level linked list and one or more higher-level linked lists. The skiplist data structure also includes a plurality of nodes, each of which includes a key field, at least one pointer field, and a lock field, respectively. Each of the plurality of nodes is linked to the first-level linked list through the at least one pointer field and ordered responsive to the key field. The method performs a search operation on the skiplist data structure, while the skiplist data structure is subject to concurrent alteration of the plurality of nodes by a plurality of execution threads that are configured to maintain the skiplist invariant and returns a result of the search operation.

    摘要翻译: 公开了用于同时搜索包含滑雪板数据结构的存储器的装置,方法和计算机程序产品。 该方法将skiplist数据结构定位在内存中。 滑雪板数据结构包括由滑雪板不变量相关联的多个链接列表。 此外,多个链接列表包括第一级链接列表和一个或多个更高级别的链接列表。 滑雪板数据结构还包括多个节点,每个节点分别包括密钥字段,至少一个指针字段和锁定字段。 所述多个节点中的每一个通过所述至少一个指针字段链接到所述第一级链接列表,并响应于所述密钥字段排序。 该方法对滑雪板数据结构执行搜索操作,而滑雪板数据结构由多个执行线程进行多个节点的并发改变,所述多个执行线程被配置为维护滑雪板不变量并返回搜索操作的结果。

    Dynamic memory work-stealing
    5.
    发明授权
    Dynamic memory work-stealing 有权
    动态记忆工作窃取

    公开(公告)号:US07779222B1

    公开(公告)日:2010-08-17

    申请号:US11187631

    申请日:2005-07-22

    CPC分类号: G06F12/023 G06F9/5016

    摘要: A dynamic memory work-stealing technique involves the implementation of a deque as a doubly-linked list of nodes. All, or almost all, of the nodes are memory structures that may be dynamically allocated and freed from a shared node pool accessible to a plurality of processes. When a process has exhausted its local memory resources, the process may “steal” memory resources from another process that has available memory resources.

    摘要翻译: 动态内存工作窃取技术涉及将deque实现为双向节点列表。 所有或几乎所有的节点是可以被动态分配并从多个进程可访问的共享节点池中释放的内存结构。 当进程耗尽其本地内存资源时,该进程可能从具有可用内存资源的另一个进程中“窃取”内存资源。

    EFFICIENT IMPLICIT PRIVATIZATION OF TRANSACTIONAL MEMORY
    6.
    发明申请
    EFFICIENT IMPLICIT PRIVATIZATION OF TRANSACTIONAL MEMORY 有权
    有效隐含的隐性存储器

    公开(公告)号:US20080256074A1

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

    申请号:US12101316

    申请日:2008-04-11

    IPC分类号: G06F17/30

    CPC分类号: G06F9/466 G06F9/526

    摘要: Apparatus, methods, and program products are disclosed that provide a technology that implicitly isolates a portion of a transactional memory that is shared between multiple threads for exclusive use by an isolating thread without the possibility of other transactions modifying the isolated portion of the transactional memory.

    摘要翻译: 公开了装置,方法和程序产品,其提供隐含地隔离在多个线程之间共享的事务存储器的一部分以供隔离线程独占使用的技术,而不会有其他事务修改事务存储器的隔离部分的可能性。

    System and method for implementing NUMA-aware reader-writer locks
    7.
    发明授权
    System and method for implementing NUMA-aware reader-writer locks 有权
    用于实现NUMA感知读写器锁的系统和方法

    公开(公告)号:US08966491B2

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

    申请号:US13458868

    申请日:2012-04-27

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: NUMA-aware reader-writer locks may leverage lock cohorting techniques to band together writer requests from a single NUMA node. The locks may relax the order in which the lock schedules the execution of critical sections of code by reader threads and writer threads, allowing lock ownership to remain resident on a single NUMA node for long periods, while also taking advantage of parallelism between reader threads. Threads may contend on node-level structures to get permission to acquire a globally shared reader-writer lock. Writer threads may follow a lock cohorting strategy of passing ownership of the lock in write mode from one thread to a cohort writer thread without releasing the shared lock, while reader threads from multiple NUMA nodes may simultaneously acquire the shared lock in read mode. The reader-writer lock may follow a writer-preference policy, a reader-preference policy or a hybrid policy.

    摘要翻译: NUMA感知的读写器锁可以利用锁定队列技术将来自单个NUMA节点的写入器请求带到一起。 锁可以放松锁定通过读取器线程和写入器线程调度关键代码段的顺序,允许锁定所有权长时间保持驻留在单个NUMA节点上,同时还利用读取器线程之间的并行性。 线程可能会争取节点级结构获得获取全局共享读写器锁的权限。 编写者线程可能遵循锁定队列策略,将锁定的所有权从写入模式从一个线程传递到队列写入器线程,而不会释放共享锁定,而来自多个NUMA节点的读取器线程可以同时在读取模式下获取共享锁定。 读写器锁可以遵循写入者偏好策略,读者偏好策略或混合策略。

    System and Method for Implementing NUMA-Aware Reader-Writer Locks
    8.
    发明申请
    System and Method for Implementing NUMA-Aware Reader-Writer Locks 有权
    实现NUMA感知读写器锁的系统和方法

    公开(公告)号:US20130290967A1

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

    申请号:US13458868

    申请日:2012-04-27

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: NUMA-aware reader-writer locks may leverage lock cohorting techniques to band together writer requests from a single NUMA node. The locks may relax the order in which the lock schedules the execution of critical sections of code by reader threads and writer threads, allowing lock ownership to remain resident on a single NUMA node for long periods, while also taking advantage of parallelism between reader threads. Threads may contend on node-level structures to get permission to acquire a globally shared reader-writer lock. Writer threads may follow a lock cohorting strategy of passing ownership of the lock in write mode from one thread to a cohort writer thread without releasing the shared lock, while reader threads from multiple NUMA nodes may simultaneously acquire the shared lock in read mode. The reader-writer lock may follow a writer-preference policy, a reader-preference policy or a hybrid policy.

    摘要翻译: NUMA感知的读写器锁可以利用锁定队列技术将来自单个NUMA节点的写入器请求带到一起。 锁可以放松锁定通过读取器线程和写入器线程调度关键代码段的顺序,允许锁定所有权长时间保持驻留在单个NUMA节点上,同时还利用读取器线程之间的并行性。 线程可能会争取节点级结构获得获取全局共享读写器锁的权限。 编写者线程可能遵循锁定队列策略,将锁定的所有权从写入模式从一个线程传递到队列写入器线程,而不会释放共享锁定,而来自多个NUMA节点的读取器线程可以同时在读取模式下获取共享锁定。 读写器锁可以遵循写入者偏好策略,读者偏好策略或混合策略。

    Efficient implicit privatization of transactional memory
    9.
    发明授权
    Efficient implicit privatization of transactional memory 有权
    事务记忆的有效隐含私有化

    公开(公告)号:US08332374B2

    公开(公告)日:2012-12-11

    申请号:US12101316

    申请日:2008-04-11

    IPC分类号: G06F7/00 G06F17/00 G06F13/14

    CPC分类号: G06F9/466 G06F9/526

    摘要: Apparatus, methods, and program products are disclosed that provide a technology that implicitly isolates a portion of a transactional memory that is shared between multiple threads for exclusive use by an isolating thread without the possibility of other transactions modifying the isolated portion of the transactional memory. In some of the described embodiments read locations of a shared memory are covered by a first set of lock objects, and write locations are covered by a second set of lock objects, each lock object in each set having a reader mode and a writer mode. Some of these embodiments acquiring each lock object in the first set using the reader mode, and acquire each lock object in the second set using the writer mode. These embodiments store result data values at write locations in the shared memory subsequent to the acquiring said first and second set of lock objects.

    摘要翻译: 公开了装置,方法和程序产品,其提供隐含地隔离在多个线程之间共享的事务存储器的一部分以供隔离线程独占使用的技术,而不会有其他事务修改事务存储器的隔离部分的可能性。 在一些描述的实施例中,共享存储器的读取位置由第一组锁定对象覆盖,并且写入位置由第二组锁定对象覆盖,每个组中的每个锁定对象具有读取器模式和写入器模式。 这些实施例中的一些实施例使用读取器模式来获取第一组中的每个锁定对象,并且使用写入器模式来获取第二组中的每个锁定对象。 这些实施例在获取所述第一和第二组锁定对象之后将结果数据值存储在共享存储器中的写入位置处。

    Extendable memory work-stealing
    10.
    发明授权
    Extendable memory work-stealing 有权
    可扩展内存工作窃取

    公开(公告)号:US07363438B1

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

    申请号:US10983032

    申请日:2004-11-05

    摘要: A deque of a local process in a memory work-stealing implementation may use one or more data structures to perform work. If the local process attempts to add a new value to its deque's data structure when the data structure is full (i.e., an overflow condition occurs), the contents of the data structure are copied to a larger allocated data structure (e.g., an array of greater size than an original array). The entries in the original, smaller-sized data structure are copied to exact positions in the now-active, larger-sized data structure. By this technique, the local process is thus provided with space to add the new value.

    摘要翻译: 内存工作窃取实现中的本地进程的一个deque可以使用一个或多个数据结构来执行工作。 如果本地进程尝试在数据结构已满(即发生溢出情况)时向其deque数据结构添加新值,则将数据结构的内容复制到较大的分配数据结构(例如, 比原始阵列更大的尺寸)。 原始较小尺寸数据结构中的条目将复制到现在活跃的较大尺寸数据结构中的精确位置。 通过这种技术,本地进程因此被提供有添加新值的空间。