Method and apparatus for monitoring processes in a non-uniform memory access (NUMA) computer system
First Claim
1. A computer-executed method for monitoring threads in a non-uniform memory access (NUMA) computer system having a plurality of processors and a plurality of portions of memory, wherein each said processor accesses each memory portion in a respective memory access time, at least some of said respective memory access times being different, the set of respective memory access times for a first processor being different from the set of respective memory access times for a second processor, the method comprising the steps of:
- executing a plurality of monitored threads, each monitored thread being associated with a respective said portion of memory;
invoking a monitoring process for automatically collecting data for said plurality of monitored threads;
executing said monitoring process on a first plurality of said processors of said NUMA computer system to collect data for said plurality of monitored threads, wherein said monitoring process executes in each processor of said first plurality of processors to collect data for each monitored thread of a respective subset of said plurality of monitored threads, the respective subset being determined according to the respective portion of memory with which each monitored thread is associated.
3 Assignments
0 Petitions
Accused Products
Abstract
A monitoring process for a NUMA system collects data from multiple monitored threads executing in different nodes of the system. The monitoring process executes on different processors in different nodes. The monitoring process intelligently collects data from monitored threads according to the node it which it is executing to reduce the proportion of inter-node data accesses. Preferably, the monitoring process has the capability to specify a node to which it should be dispatched next to the dispatcher, and traverses the nodes while collecting data from threads associated with the node in which the monitor is currently executing. By intelligently associating the data collection with the node of the monitoring process, the frequency of inter-node data accesses for purposes of collecting data by the monitoring process is reduced, increasing execution efficiency.
32 Citations
20 Claims
-
1. A computer-executed method for monitoring threads in a non-uniform memory access (NUMA) computer system having a plurality of processors and a plurality of portions of memory, wherein each said processor accesses each memory portion in a respective memory access time, at least some of said respective memory access times being different, the set of respective memory access times for a first processor being different from the set of respective memory access times for a second processor, the method comprising the steps of:
-
executing a plurality of monitored threads, each monitored thread being associated with a respective said portion of memory;
invoking a monitoring process for automatically collecting data for said plurality of monitored threads;
executing said monitoring process on a first plurality of said processors of said NUMA computer system to collect data for said plurality of monitored threads, wherein said monitoring process executes in each processor of said first plurality of processors to collect data for each monitored thread of a respective subset of said plurality of monitored threads, the respective subset being determined according to the respective portion of memory with which each monitored thread is associated. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A program product for monitoring threads in a non-uniform memory access (NUMA) computer system having a plurality of processors and a plurality of portions of memory, wherein each said processor accesses each memory portion in a respective memory access time, at least some of said respective memory access times being different, the set of respective memory access times for a first processor being different from the set of respective memory access times for a second processor, the program product comprising:
-
a plurality of computer executable instructions recorded on signal-bearing media, wherein said instructions, when executed by a NUMA computer system, cause the NUMA computer system to perform the steps of;
executing at least one thread of said program product on a first plurality of processors having different sets of respective memory access times to different memory portions of said NUMA computer system, said program product for collecting data for a plurality of monitored threads of said NUMA computer system product, each monitored thread being associated with a respective said portion of memory;
selecting a respective subset of said plurality of monitored threads corresponding to each of said first plurality of processors, said subsets being selected using the memory access time from each respective processor of said first plurality of processors to each respective memory portion with which a respective monitored thread is associated; and
collecting data for each said monitored thread of each respective said subset of said plurality of monitored threads by executing a thread of said program product in a respective said processor corresponding to the respective said subset. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-uniform memory access (NUMA) computer system, comprising:
-
a plurality of nodes, each node comprising at least one processor and a respective portion of main memory of said computer system, wherein a memory access time from each respective processor to a memory location in the portion of memory in the same node as the respective processor is less than a memory access time from the respective processor to a memory location in a portion of memory in a different node than the respective processor;
an operating system including at least one dispatcher, said dispatcher dispatching threads for execution on said processors;
a thread monitor which automatically collects data for a plurality of monitored threads executing on said computer system, each monitored thread being associated with a respective node of said plurality of nodes, wherein said thread monitor preferentially collects data for monitored threads associated with the node containing a processor in which the thread monitor is executing when collecting the data. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification