Source code for radical.utils.scheduler.scheduler_base
# ------------------------------------------------------------------------------
#
[docs]
class SchedulerBase(object):
# --------------------------------------------------------------------------
#
def __init__(self, resources):
"""
Initialize the scheduler with a certain set and topology of
resources to schedule requests over.
"""
raise NotImplementedError('base class is virtual')
# --------------------------------------------------------------------------
#
[docs]
def alloc(self, req):
"""
allocate a slice of the available resources to satisfy the request, and
return that allocation.
The returned allocation is a tuple [loc, req], where 'req' is the reqest
passed as argument, and 'loc' is eithen one of the following:
- int: start index from the beginning of the resource list
- list of ints: set of indexes in the resource list
"""
raise NotImplementedError('base class is virtual')
# --------------------------------------------------------------------------
#
[docs]
def dealloc(self, res):
"""
deallocate a given allocation to return its resources to the pool of
resources available for new allocations.
"""
raise NotImplementedError('base class is virtual')
# --------------------------------------------------------------------------
#
[docs]
def get_layout(self):
"""
return row/col info for visual representation
"""
raise NotImplementedError('base class is virtual')
# --------------------------------------------------------------------------
#
[docs]
def get_map(self):
"""
return a map indicating current resource allocation
"""
raise NotImplementedError('base class is virtual')
# ------------------------------------------------------------------------------