1. A method for maximizing throughput and minimizing job turn-around-time in a multi-processing multi-threading system, said system comprising one or more physical processors, said system dynamically enabling and disabling simultaneous multi-threading control in the one or more physical processors, said method comprising: monitoring priority of all jobs executing, wherein a first job among said all jobs is a job executing on said one or more physical processors of said multi-processing multi-threading system; wherein low priority job type is suspendable; wherein medium priority job type is unsuspendable; wherein high priority job type is unsuspendable and has a higher priority than that of said medium priority job type; if said first job is said high priority job type: setting said simultaneous multi-threading control of said multi-processing multi-threading system as off-state, limiting total number of said medium priority job type and said high priority job type to the number of said one or more physical processors, and suspending a number of low priority suspendable jobs, wherein the total number of high priority job, medium priority job and low priority jobs are not greater than the number of said one or more physical processors; else: setting said simultaneous multi-threading control of said multi-processing multi-threading system as on-state, limiting total number of said medium priority job type and said high priority job type to the number of said one or more physical processors, and allowing execution of additional low priority suspendable jobs simultaneously with said medium priority jobs and said high priority jobs.