Reducing Remote Memory Accesses to Shared Data in a Multi-Nodal Computer System
    2.
    发明申请
    Reducing Remote Memory Accesses to Shared Data in a Multi-Nodal Computer System 失效
    减少远程内存访问多节点计算机系统中的共享数据

    公开(公告)号:US20100229177A1

    公开(公告)日:2010-09-09

    申请号:US12551162

    申请日:2009-08-31

    IPC分类号: G06F9/46

    摘要: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).

    摘要翻译: 公开了一种用于识别和分组具有相互依赖的数据访问需求的线程的装置,方法和程序产品。 本发明的优选实施例利用两种不同的构造来完成该分组。 记录亲和组(MAG)被公开。 MAG构造使得多个线程能够与相同的节点相关联,而没有任何预先知道哪个线程将涉及关联,并且不对与它们相关联的特定节点进行任何控制。 还公开了逻辑节点构造。 逻辑节点构造使得多个线程可以与相同的指定节点相关联,而无需预先知道关联中涉及的线程。 虽然逻辑节点没有明确地识别包括系统的底层物理节点,但它们提供了将特定线程与其他节点相同的节点和其他线程相关联的手段。

    Mechanism for reducing remote memory accesses to shared data in a multi-nodal computer system
    3.
    发明授权
    Mechanism for reducing remote memory accesses to shared data in a multi-nodal computer system 失效
    减少在多节点计算机系统中对共享数据的远程存储器访问的机制

    公开(公告)号:US07584476B2

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

    申请号:US10793346

    申请日:2004-03-04

    IPC分类号: G06F9/46

    摘要: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).

    摘要翻译: 公开了一种用于识别和分组具有相互依赖的数据访问需求的线程的装置,方法和程序产品。 本发明的优选实施例利用两种不同的构造来完成该分组。 记录亲和组(MAG)被公开。 MAG构造使得多个线程能够与相同的节点相关联,而不需要知道哪个线程将涉及关联,并且不对与它们相关联的特定节点进行任何控制。 还公开了逻辑节点构造。 逻辑节点构造使得多个线程可以与相同的指定节点相关联,而无需预先知道关联中涉及的线程。 虽然逻辑节点没有明确地识别包括系统的底层物理节点,但它们提供了将特定线程与其他节点相同的节点和其他线程相关联的手段。

    Method, apparatus, and computer program product for accessing process local storage of another process
    5.
    发明授权
    Method, apparatus, and computer program product for accessing process local storage of another process 有权
    用于访问另一进程的本地存储的方法,装置和计算机程序产品

    公开(公告)号:US07844781B2

    公开(公告)日:2010-11-30

    申请号:US11360351

    申请日:2006-02-23

    IPC分类号: G06F12/06

    CPC分类号: G06F9/544

    摘要: An operating system kernel includes an attach mechanism and a detach mechanism. In addition, processes are tagged with an access attribute identifying the process as either a client process or a server process. Based on the access attribute, the operating system kernel lays out the process local address space differently depending on whether the process is a client process or a server process. A server process can “attach” to a client process and reference all of the client process' local storage as though it were its own. The server process continues to reference its own process local storage, but in addition, it can reference the other storage, using the client process' local addresses. When access to the other storage is no longer needed, the server process can “detach” from the client process. Once detached, the other storage can no longer be referenced.

    摘要翻译: 操作系统内核包括连接机构和分离机构。 此外,进程用标识进程的访问属性标记为客户端进程或服务器进程。 基于访问属性,操作系统内核会根据进程是客户端进程还是服务器进程来区分进程本地地址空间。 服务器进程可以“附加”到客户端进程,并引用所有客户端进程的本地存储,就像它是自己的。 服务器进程继续引用其自身的进程本地存储,但另外也可以引用其他存储,使用客户端进程的本地地址。 当不再需要访问其他存储时,服务器进程可以从客户端进程“脱离”。 一旦分离,其他存储就不能再被引用了。

    Apparatus and method for providing simultaneous local and global addressing using software to distinguish between local and global addresses

    公开(公告)号:US06574721B1

    公开(公告)日:2003-06-03

    申请号:US09387343

    申请日:1999-08-31

    IPC分类号: G06F1206

    摘要: An apparatus and method provide simultaneous local and global addressing capabilities in a computer system. A global address space is defined that may be accessed by all processes. In addition, each process has a local address space that is local (and therefore available) only to that process. An address space processor is implemented in software to perform system functions that distinguish between local addresses and global addresses. In the preferred embodiments, the local address space has a size that is a multiple of the size of a segment of global address space. When the hardware indicates a page fault, the address space processor determines whether the address being translated is a local address or a global address. If the address is a local address, the address space processor uses a local directory to process the page fault. If the address is a global address, the address space processor uses a global directory to process the page fault. When the hardware indicates an addressing error because a computed address crosses a global segment boundary, the address space processor determines whether the address is a local address or a global address. If the address is a global address, the address space processor indicates an addressing error. If the address is a local address, the address space processor determines whether the address is within the process' local address space, and indicates an addressing error if the address is outside the process' local address space. Instructions are allowed to operate on both local and global addresses because the address space processor handles either type of address whenever software assistance is required, such as for servicing a page fault or checking a segment boundary crossing. In addition, the address space processor dynamically checks the addressing compatibility of called code before passing control to the called code.

    Methods, systems, and media for managing dynamic storage
    7.
    发明授权
    Methods, systems, and media for managing dynamic storage 失效
    用于管理动态存储的方法,系统和媒体

    公开(公告)号:US07743222B2

    公开(公告)日:2010-06-22

    申请号:US12099679

    申请日:2008-04-08

    IPC分类号: G06F12/00

    摘要: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.

    摘要翻译: 公开了用于管理动态存储器的方法,系统和媒体。 实施例可以公开识别具有用于动态存储的存储器的节点,以及从所识别的节点为堆池预留一部分存储器。 在生成堆池之后,实施例可以将动态存储从堆池分配给所接收的与所识别的节点之一相关联的任务。 更具体地,实施例标识与任务相关联的节点或家庭节点,由任务请求的动态存储器的量,以及在与任务相关联的节点中创建堆对象以提供所请求的动态存储。 一些实施例涉及在接收到任务完成并且动态存储不再需要该任务的指示时,去分配分配给该任务的动态存储器。 若干这样的实施例将去分配的动态存储返回给堆池以供重用。

    Mechanism for enabling the distribution of operating system resources in a multi-node computer system
    8.
    发明授权
    Mechanism for enabling the distribution of operating system resources in a multi-node computer system 有权
    在多节点计算机系统中启用操作系统资源分配的机制

    公开(公告)号:US07574708B2

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

    申请号:US10793476

    申请日:2004-03-04

    IPC分类号: G06F9/46

    摘要: Disclosed is an apparatus, method, and program product that enables distribution of operating system resources on a nodal basis in the same proportions as the expected system workload. The preferred embodiment of the present invention accomplishes this by assigning various types of weights to each node to represent their proportion of the overall balance within the system. Target Weights represent the desired distribution of the workload based on the existing proportions of processor and memory resources on each node. The actual workload balance on the system is represented by Current Weights, which the operating system strives to keep as close to the Target Weights as possible, on an ongoing basis. When the system is started, operating system services distribute their resources nodally in the same proportions as the Target Weights, and can request to be notified if the Target Weights ever change. If processors and/or memory are subsequently added or removed, new Target Weights are calculated at that time, and all services which requested notification are notified so they can redistribute their resources according to the new Target Weights or a stepwise refinement thereof.

    摘要翻译: 公开了一种装置,方法和程序产品,其能够以与预期系统工作负载相同的比例在节点基础上分发操作系统资源。 本发明的优选实施例通过为每个节点分配各种类型的权重来表示其在系统内的总体平衡的比例来实现。 目标权重表示基于每个节点上处理器和内存资源的现有比例的工作负载的所需分布。 系统上的实际工作负载余额由Current Weights表示,操作系统力求尽可能地保持尽可能接近目标权重。 当系统启动时,操作系统服务会以与“目标权重”相同的比例节点资源,并且如果“目标权重”(Target Weights)发生变化,则可以请求收到通知。 如果随后添加或删除处理器和/或内存,那么当时计算出新的目标权重,并通知所有请求通知的服务,以便他们可以根据新的“目标权重”或其逐步改进来重新分配资源。

    Methods, Systems, and Media for Managing Dynamic Storage
    9.
    发明申请
    Methods, Systems, and Media for Managing Dynamic Storage 失效
    用于管理动态存储的方法,系统和媒体

    公开(公告)号:US20080215845A1

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

    申请号:US12099679

    申请日:2008-04-08

    IPC分类号: G06F12/00

    摘要: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.

    摘要翻译: 公开了用于管理动态存储器的方法,系统和媒体。 实施例可以公开识别具有用于动态存储的存储器的节点,以及从所识别的节点为堆池预留一部分存储器。 在生成堆池之后,实施例可以将动态存储从堆池分配给所接收的与所识别的节点之一相关联的任务。 更具体地,实施例标识与任务相关联的节点或家庭节点,由任务请求的动态存储器的量,以及在与任务相关联的节点中创建堆对象以提供所请求的动态存储。 一些实施例涉及在接收到任务完成并且动态存储不再需要该任务的指示时,去分配分配给该任务的动态存储器。 若干这样的实施例将去分配的动态存储返回给堆池以供重用。

    Methods, systems, and media for managing dynamic storage
    10.
    发明授权
    Methods, systems, and media for managing dynamic storage 有权
    用于管理动态存储的方法,系统和媒体

    公开(公告)号:US07356655B2

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

    申请号:US10438393

    申请日:2003-05-15

    IPC分类号: G06F12/00

    摘要: Methods, systems, and media for managing dynamic memory are disclosed. Embodiments may disclose identifying nodes with having memory for dynamic storage, and reserving a portion of the memory from the identified nodes for a heap pool. After generating a heap pool, embodiments may allocate dynamic storage from the heap pool to tasks received that are associated with one of the identified nodes. More specifically, embodiments identify the node or home node associated with the task, the amount of dynamic storage requested by the task, and create a heap object in the node associated with the task to provide the requested dynamic storage. Some embodiments involve de-allocating the dynamic storage assigned to the task upon receipt of an indication that the task is complete and the dynamic storage is no longer needed for the task. Several of such embodiments return the de-allocated dynamic storage to the heap pool for reuse.

    摘要翻译: 公开了用于管理动态存储器的方法,系统和媒体。 实施例可以公开识别具有用于动态存储的存储器的节点,以及从所识别的节点为堆池预留一部分存储器。 在生成堆池之后,实施例可以将动态存储从堆池分配给所接收的与所识别的节点之一相关联的任务。 更具体地,实施例标识与任务相关联的节点或家庭节点,由任务请求的动态存储器的量,以及在与任务相关联的节点中创建堆对象以提供所请求的动态存储。 一些实施例涉及在接收到任务完成并且动态存储不再需要该任务的指示时,去分配分配给该任务的动态存储器。 若干这样的实施例将去分配的动态存储返回给堆池以供重用。