Abstract:
A method for controlling operation of a computer software application running on a plurality of computing entities, which are members of a group of mutually-linked computing entities running the application within a distributed computing system. The method includes receiving an indication of a change in membership of the group together with a reason for the change. A membership change message is delivered to the members, so as to inform the members of the change and of the reason for the change.
Abstract:
The data cache management mechanism of the present invention is created by an optimizing compiler. The optimizing compiler intelligently places non-blocking preload instructions into the instruction stream of the computer system so as to minimize both the frequency and detrimental effect of cache misses. The non-blocking preload instructions are placed into the instruction stream based on the existence of predictor constructs that foretell what information the processor will need and when it will need it. As a result, cache misses are either avoided entirely or reduced in severity.
Abstract:
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).
Abstract:
Disclosed is an apparatus, method, and program product for observing the nodal workload balance of the system on an ongoing basis, and for dynamically changing the preferred nodes of existing threads in order to improve nodal balance. Workload balance is ascertained on a nodal basis and then thread-based workload information is collected. If the detected imbalance persists, the thread-based information is used to change the assignment of preferred nodes to threads to improve nodal workload balance.
Abstract:
Mechanism for Assigning Home Nodes to Newly Created Threads Disclosed is an apparatus, method, and program product for associating threads with the processing nodes of a multi-nodal computer system. The assignment is accomplished by considering both the relative work capacity of, and the relative amount of ongoing work assigned to, each node. Initiation Weights are used in the preferred embodiment to reflect the desired proportions of threads assigned to each node, from the standpoint of which node should be chosen when a new thread is created.
Abstract:
According to the present invention, pool allocation and process assignment mechanisms create process nodal affinity in a NUMA multiprocessor system for enhanced performance. The multiprocessor system includes multiple interconnected multiprocessing nodes that each contain one or more processors and a local main memory, the system main storage being distributed among the local main memories of the multiprocessing nodes in a NUMA architecture. A pool reservation mechanism reserves pools of memory space within the logical main storage, and the pool allocation mechanism allocates those pools to real pages in the local main-memory of multiprocessing nodes. Processes to be created on the multiprocessor are given an attribute that indicates an associated pool. Upon creation, the process assignment mechanism will only assign a process to a multiprocessing node that has been allocated the pool indicated by the process' attribute. This process nodal affinity increases accesses by the assigned process to local main storage of that node, thereby enhancing system performance.