Patent ID: 11861272
Assignee: ORACLE INTERNATIONAL CORPORATION
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 0:
1. A method, comprising:
performing by one or more computing devices:
monitoring one or more performance indicators using individual ones of one or more machine performance counters during execution of one or more stress applications on a multi-core system;
generating a machine description for the multi-core system comprising bandwidth values for respective ones of a plurality of memory links, wherein individual ones of the bandwidth values are based at least in part on analysis of the monitored one or more performance indicators, and wherein respective ones of the plurality of memory links interconnect individual ones of a plurality of components of the multi-core system to individual memory components of the multi-core system;
monitoring one or more other performance indicators using the individual ones of the one or more machine performance counters during execution of a plurality of profiling sessions of a workload on the multi-core system, wherein the workload differs from individual ones of the one or more stress applications, and wherein individual ones of the plurality of profiling sessions differ from other ones of the plurality of profiling sessions in thread placement;
generating a workload description for the multi-core system comprising bandwidth usage values for the respective ones of the plurality of memory links, wherein individual ones of the bandwidth usage values are based at least in part on analysis of the monitored one or more other performance indicators;
modeling, for the multi-core system, respective behaviors of the workload for a plurality of proposed thread placements based at least in part on the machine description generated through execution of the one or more stress applications, the workload description generated through execution of the plurality of profiling sessions and the respective plurality of proposed thread placements, wherein at least some of the plurality of proposed thread placements differ from others of the plurality of proposed thread placements, and wherein at least a portion of the plurality of proposed thread placements differ from thread placements of each of the plurality of profiling sessions in a number of proposed threads or respective proposed locations for execution of at least some of the proposed threads;
predicting, based on said modeling, respective workload bandwidth demands and performance for individual ones of the plurality of proposed thread placements on the multi-core system, wherein the respective workload bandwidth demands comprise respective bandwidth requirements for at least some of the plurality of memory links; and
determining a thread allocation for the workload based on the respective predictions of the workload bandwidth demands and performance for the individual ones of the plurality of proposed thread placements, wherein the thread allocation comprises a determined number of executing threads and respective locations for execution of at least some of the executing threads.