A method of processing a computational job with a plurality of processors, the method comprising: defining a number I, l > 1, of different priority levels that can be assigned to different computational jobs wherein higher priority jobs are designated by a lower value of the priority level; defining a subset c, 1≤c≤l, of processors for each priority level that can be assigned to a job; receiving a request to process a job, wherein a priority level u, 1≤u≤l, is associated with the job; designating a first group of the processors as being available to process the job, wherein the first group of processors comprises all processors in subsets c, c≥u of processors which are defined for priority levels c greater than or equal to the priority level u associated with the job; designating a second group of the processors as being available to process the job, wherein the second group of processors comprises processors in subsets of processors which are defined for priority levels lower than the priority level associated with the job c<u and have a current utilization rate U ciM of the processor which is less than a utilization rate threshold value U cu for the processor, wherein the utilization rate threshold value U cu for the processor is stored in a database and is based on a combination of the priority level of the job u, 1≤u≤l, and a subset of processors c, 1≤u≤l, to which the processor belongs, the utilization rate threshold value being predefined for all processors in the subset of processors to which the processor belongs according to the following rules: U cu < U c + 1 u, c = 1... u - 1, u > 1 U cu > U c u + 1, u = c + 1,..., l - 1, c < l - 1; and processing the job with one or more of the processors selected from the first group of processors and the second group of processors. defining a number I, l > 1, of different priority levels that can be assigned to different computational jobs wherein higher priority jobs are designated by a lower value of the priority level; defining a subset c, 1≤c≤l, of processors for each priority level that can be assigned to a job; receiving a request to process a job, wherein a priority level u, 1≤u≤l, is associated with the job; designating a first group of the processors as being available to process the job, wherein the first group of processors comprises all processors in subsets c, c≥u of processors which are defined for priority levels c greater than or equal to the priority level u associated with the job; designating a second group of the processors as being available to process the job, wherein the second group of processors comprises processors in subsets of processors which are defined for priority levels lower than the priority level associated with the job c<u and have a current utilization rate U ciM of the processor which is less than a utilization rate threshold value U cu for the processor, wherein the utilization rate threshold value U cu for the processor is stored in a database and is based on a combination of the priority level of the job u, 1≤u≤l, and a subset of processors c, 1≤u≤l, to which the processor belongs, the utilization rate threshold value being predefined for all processors in the subset of processors to which the processor belongs according to the following rules: U cu < U c + 1 u, c = 1... u - 1, u > 1 U cu > U c u + 1, u = c + 1,..., l - 1, c < l - 1; and processing the job with one or more of the processors selected from the first group of processors and the second group of processors.