1. A computer-implemented method of provisioning virtual machines in a computer chassis, the computer-implemented method comprising: receiving a workload request, wherein the workload request is a request for a virtual machine (VM) to execute a software task; determining a relative importance of an input/output (I/O) bandwidth requirement and a processing requirement of the software task; identifying an I/O bandwidth capability and a processing capability for each of multiple computers in a computer chassis; identifying a first optimal computer as having a highest I/O bandwidth capability due to having more I/O interfaces than any other computer in the computer chassis, wherein the first optimal computer has the I/O bandwidth capability that optimally matches the I/O bandwidth requirement of the software task over other computers in the computer chassis; identifying a second optimal computer as having a highest processing capability due to having more processors and more local storage drives than any other computer in the computer chassis, wherein the second optimal computer has the processing capability that optimally matches the processing requirement of the software task over other computers in the computer chassis; competing, by the first and second optimal computers, for a job to run the software task; in response to determining that the I/O bandwidth requirement of the software task is more important than the processing requirement of the software task, assigning execution of an I/O intensive application to at least one VM on the first optimal computer; and in response to determining that the processing requirement of the software task is more important than the I/O bandwidth requirement of the software task, assigning execution of a processing intensive application to at least one VM on the second optimal computer.