A method, system and computer program product for generating sets of training programs for machine learning models. Fixed values of one or more workload metrics are received from a user, where the workload metrics correspond to low-level program features which define particular low-level application behavior. A profile using the fixed values of the workload metrics is then created. A suite of synthetic applications is generated using the created profile to form a set of training programs which target particular aspects of program behavior. A machine learning model is then trained using the set of training programs. Since the generated synthetic applications provide a broader coverage of the program state-space, the formed set of training programs more accurately targets performance behavior thereby improving the prediction accuracy of the machine learning based predictive models.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for generating sets of training programs for machine learning models, the method comprising: receiving fixed values of a first set of one or more workload metrics from a user and/or generating random values of a second set of one or more workload metrics within a bounded range, wherein said workload metrics correspond to low-level program features which define particular low-level application behavior; creating, by a processor, a profile using said fixed values of said first set of one or more workload metrics and/or using said random values of said second set of one or more workload metrics; and generating, by said processor, a suite of synthetic applications using said created profile to form a set of training programs which target particular aspects of program behavior. 2. The method as recited in claim 1 further comprising: training a machine learning model using said set of training programs. 3. The method as recited in claim 1, wherein said first set of one or more workload metrics contains different metrics than said second set of one or more workload metrics. 4. The method as recited in claim 1, wherein said fixed values of said first set of one or more workload metrics are received from said user via a user-controllable knob. 5. The method as recited in claim 1, wherein characteristics of said workload metrics comprise one or more of the following: instruction-level characteristics, control-flow characteristics, memory-access characteristics and input/output characteristics. 6. The method as recited in claim 5, wherein said instruction-level characteristics comprise one or more of the following: instruction mix, instruction count, instruction cache miss rate and instruction level parallelism. 7. The method as recited in claim 5, wherein said control-flow characteristics comprise one or more of the following: average basic block size, branch transition rate and branch misprediction rate. 8. The method as recited in claim 5, wherein said memory-access characteristics comprise one or more of the following: data footprint, memory access regularity/irregularity, spatial locality stride bins, temporal locality bins and L1/L2 data cache miss rates. 9. A computer program product for generating sets of training programs for machine learning models, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code comprising the programming instructions for: receiving fixed values of a first set of one or more workload metrics from a user and/or generating random values of a second set of one or more workload metrics within a bounded range, wherein said workload metrics correspond to low-level program features which define particular low-level application behavior; creating a profile using said fixed values of said first set of one or more workload metrics and/or using said random values of said second set of one or more workload metrics; and generating a suite of synthetic applications using said created profile to form a set of training programs which target particular aspects of program behavior. 10. The computer program product as recited in claim 9, wherein the program code further comprises the programming instructions for: training a machine learning model using said set of training programs. 11. The computer program product as recited in claim 9, wherein said first set of one or more workload metrics contains different metrics than said second set of one or more workload metrics. 12. The computer program product as recited in claim 9, wherein said fixed values of said first set of one or more workload metrics are received from said user via a user-controllable knob. 13. The computer program product as recited in claim 9, wherein characteristics of said workload metrics comprise one or more of the following: instruction-level characteristics, control-flow characteristics, memory-access characteristics and input/output characteristics. 14. The computer program product as recited in claim 13, wherein said instruction-level characteristics comprise one or more of the following: instruction mix, instruction count, instruction cache miss rate and instruction level parallelism. 15. The computer program product as recited in claim 13, wherein said control-flow characteristics comprise one or more of the following: average basic block size, branch transition rate and branch misprediction rate. 16. The computer program product as recited in claim 13, wherein said memory-access characteristics comprise one or more of the following: data footprint, memory access regularity/irregularity, spatial locality stride bins, temporal locality bins and L1/L2 data cache miss rates. 17. A system, comprising: a memory unit for storing a computer program for generating sets of training programs for machine learning models; and a processor coupled to the memory unit, wherein the processor is configured to execute the program instructions of the computer program comprising: receiving fixed values of a first set of one or more workload metrics from a user and/or generating random values of a second set of one or more workload metrics within a bounded range, wherein said workload metrics correspond to low-level program features which define particular low-level application behavior; creating a profile using said fixed values of said first set of one or more workload metrics and/or using said random values of said second set of one or more workload metrics; and generating a suite of synthetic applications using said created profile to form a set of training programs which target particular aspects of program behavior. 18. The system as recited in claim 17, wherein the program instructions of the computer program further comprise: training a machine learning model using said set of training programs. 19. The system as recited in claim 17, wherein said first set of one or more workload metrics contains different metrics than said second set of one or more workload metrics. 20. The system as recited in claim 17, wherein said fixed values of said first set of one or more workload metrics are received from said user via a user-controllable knob.