Patent ID: 8347301

Claim:
A computing device comprising: a multi-core processor including a plurality of cores arranged in a plurality of core clusters; and a task scheduler to receive application information relating to at least one multithreaded application and to assign tasks of said multithreaded application to a plurality of threads to be executed by said multi-core processor, the application information including a speedup knee point of a speedup profile curve of said multithreaded application, a thread coupling degree and a bandwidth utilization rate, the speedup knee point including a point of said speedup profile curve at which an increase in a number of said threads will not result in substantial increase in a scalability performance, the thread coupling degree representing a degree of sharing one or more data resources by said threads, and the bandwidth utilization rate representing a rate of utilization of a shared hardware interconnect according to the number of said threads, wherein said task scheduler is to determine the number of said threads based on the speedup knee-point, wherein, said task scheduler is to assign said tasks to threads of two or more cores belonging to a common core cluster, if said thread coupling degree is greater than a predefined thread coupling threshold, and wherein said task scheduler is to assign said tasks to threads of two or more cores belonging to different core clusters, if said thread coupling degree is not greater than said predefined thread coupling threshold and said bandwidth utilization rate is greater than a predefined bandwidth utilization threshold.