Patent ID: 7665089

Claim:
A method for performing thread migration within a graph containing computing nodes, wherein computing nodes in the graph contain central processing units (CPUs) and/or memories, the method comprising: identifying CPUs within the graph of computing nodes that are available to accept a given thread; for each available CPU: determining a communication vector for the given thread by determining an average communication distance and an average communication angle between the available CPU and memories which are accessed by the given thread; and identifying a set of threads from all threads associated with neighboring CPUs, wherein a length of a communication vector for each thread is less than or equal to a length of the communication vector for the given thread, and wherein an absolute angle of a communication vector for each thread is a similar to an absolute angle of the communication vector for the given thread; and determining whether to move the given thread to an available CPU based on a colinearity between the communication vector for the given thread for an available CPU and an average communication vector for a set of identified threads for an available CPU.