1. A computer system, comprising: a plurality of multi-threaded processors, the multi-threaded processors each having a set of hardware threads forming a pool of hardware threads; a plurality of guest operating systems GOS, wherein each GOS requests a number of logical processors that represents a requested number of the hardware threads, and each GOS presents a price for an assignment of nominal processing power; and a scheduler to (i) determine generalized costs for each GOS from the corresponding presented price and the corresponding number of requested logical processors, and (ii) schedule at least one of the GOS to be run on an optimal number of the pool of hardware threads, wherein the scheduler determines the optimal number based on an optimization of a sum of the generalized costs with respect to a total count of the hardware threads of the pool, wherein one of the generalized costs is based on the price presented by the corresponding GOS multiplied by on a speed of processing the corresponding GOS on the number of the pool hardware threads it has requested.