qcg.pilotjob.scheduleralgo module

class qcg.pilotjob.scheduleralgo.SchedulerAlgorithm(resources=None)

Bases: object

Scheduling algorithm.

resources

available resources

Type:Resources

Initialize scheduling algorithm

Parameters:resources (Resources, optional) – available resources
allocate_cores(min_cores, max_cores=None)

Create allocation with maximum number of cores from given range.

The cores will be allocated in a linear method.

Parameters:
  • min_cores (int) – minimum requested number of cores
  • max_cores (int) – maximum requested number of cores
Returns:

created allocation None: not enough free resources

Return type:

Allocation

Raises:
  • NotSufficientResources – when there are not enough resources avaiable
  • InvalidResourceSpec – when the min_cores < 0 or min_cores > max_cores
allocate_job(reqs)

Create allocation for job with given resource requirements.

Parameters:

reqs (JobResources) – job’s resource requirements

Returns:

created allocation or None if not enough free resources

Return type:

Allocation

Raises:
  • NotSufficientResources – when there are not enough resources avaiable
  • InvalidResourceSpec – when resource requirements are not valid