Package Scientific :: Package DistributedComputing :: Module TaskManager :: Class TaskManager
[frames] | no frames]

Class TaskManager

Pyro.core.ObjBase --+
                    |
                   TaskManager

Manager for computational tasks.

A TaskManager accepts task requests and hands them out to other processes. It stores the results that can then be picked up by the requester. A TaskManager also keeps track of its compute processes. If a process disappears, its running tasks are re-scheduled for execution by another compute process. TaskManangers are thread-safe.

Instance Methods
 
__init__(self)
str
activeProcessInfo(self, pid)
Returns: information about the active process number pid
str
addTaskRequest(self, tag, parameters, process_id=None)
Returns: the task id
 
deleteData(self, label)
tuple

Returns the result of an arbitrary finished task. The task is removed from the list of finished tasks.

getAnyResult(self)
Returns: the task id, the task tag, and the result of the task
tuple

Returns a waiting task of arbitrary tag. The task is removed from the list of waiting tasks and added to the list of running tasks.

getAnyTask(self, process_id=None)
Returns: the task id, the task tag, and the parameters
tuple

Returns the result of a finished task that has the given tag. The task is removed from the list of finished tasks.

getResultWithTag(self, tag)
Returns: the task id and the result of the task
tuple

Returns a waiting task with the given tag. The task is removed from the list of waiting tasks and added to the list of running tasks.

getTaskWithTag(self, tag, process_id=None)
Returns: the task id and the parameters
int
numberOfActiveProcesses(self)
Returns: the number of active processes
tuple
numberOfTasks(self)
Returns: a tuple of dictionaries containing the number of waiting tasks, the number of running tasks, and the number of results waiting to be retrieved.
 
ping(self, process_id)
int

Registers a process with the task manager. All processes must call this method before making any other task manager calls.

registerProcess(self, watchdog_period=None, info=None)
Returns: a unique process id
 
retrieveData(self, label)
 
returnTask(self, task_id)
 
storeData(self, **kw)
 
storeException(self, task_id, exception, traceback)
 
storeResult(self, task_id, result)
 
terminate(self)
Signals that no more tasks or results will be requested.
 
unregisterProcess(self, process_id)

Inherited from Pyro.core.ObjBase: GUID, Pyro_dyncall, delegateTo, getAttrProxy, getDaemon, getLocalStorage, getProxy, remote_retrieve_code, remote_supply_code, setCodeValidator, setDaemon, setGUID

Method Details

__init__(self)
(Constructor)

 
Overrides: Pyro.core.ObjBase.__init__

activeProcessInfo(self, pid)

 
Parameters:
  • pid (int) - the number of an active process
Returns: str
information about the active process number pid

addTaskRequest(self, tag, parameters, process_id=None)

 
Parameters:
  • tag (str) - the tag of the task being requested
  • parameters - the parameters to be passed to the task
  • process_id (int) - the id of the requesting process (optional)
Returns: str
the task id

deleteData(self, label)

 
Parameters:
  • label (str) - the label of the data item to be deleted

getAnyResult(self)

 
Returns: tuple

Returns the result of an arbitrary finished task. The task is removed from the list of finished tasks.

the task id, the task tag, and the result of the task

getAnyTask(self, process_id=None)

 
Parameters:
  • process_id (int) - the id of the retrieving process (optional)
Returns: tuple

Returns a waiting task of arbitrary tag. The task is removed from the list of waiting tasks and added to the list of running tasks.

the task id, the task tag, and the parameters

getResultWithTag(self, tag)

 
Parameters:
  • tag - a task tag
Returns: tuple

Returns the result of a finished task that has the given tag. The task is removed from the list of finished tasks.

the task id and the result of the task

getTaskWithTag(self, tag, process_id=None)

 
Parameters:
  • tag (str) - a task tag
  • process_id (int) - the id of the retrieving process (optional)
Returns: tuple

Returns a waiting task with the given tag. The task is removed from the list of waiting tasks and added to the list of running tasks.

the task id and the parameters

numberOfActiveProcesses(self)

 
Returns: int
the number of active processes

numberOfTasks(self)

 
Returns: tuple
a tuple of dictionaries containing the number of waiting tasks, the number of running tasks, and the number of results waiting to be retrieved. Each dictionary contains the count for each tag.

ping(self, process_id)

 
Parameters:
  • process_id (int

    Tells the task manager that a process is still alive.

    ) - the id of the process

registerProcess(self, watchdog_period=None, info=None)

 
Parameters:
  • watchdog_period (int or NoneType) - the period at which the registering process promises to ping the task manager to signal that is still alive. If None, no pings are expected.
  • info (str) - an information string telling something about the machine running the process
Returns: int

Registers a process with the task manager. All processes must call this method before making any other task manager calls.

a unique process id

retrieveData(self, label)

 
Parameters:
  • label (str) - the label of the data item to be retrieved

returnTask(self, task_id)

 
Parameters:
  • task_id (str

    Removes a task from the list of running tasks and put its back at the beginning of the list of waiting tasks. This method should be called by a process that has obtained a task but cannot handle it.

    ) - the id of the task for which the result is provided

storeData(self, **kw)

 
Parameters:
  • kw (dict

    This routine permits processes to exchange arbitrary data items through the task manager.

    ) - a keyword list of data items to be stored

storeException(self, task_id, exception, traceback)

 
Parameters:
  • task_id (str) - the id of the task for which the result is provided
  • exception - the exception raised by the task
  • traceback (str

    Stores the exception associated with the task. The task is removed from the list of running tasks and added to the list of finished tasks. When the result is retrieved by another process, TaskRaisedException is raised.

    ) - a text version of the stack traceback at the time of the exception

storeResult(self, task_id, result)

 
Parameters:
  • task_id (str) - the id of the task for which the result is provided
  • result - the result of the task

    Stores the result associated with the task. The task is removed from the list of running tasks and added to the list of finished tasks.

terminate(self)

 

Signals that no more tasks or results will be requested. All waiting threads will be terminated by raising TaskManagerTermination.

unregisterProcess(self, process_id)

 
Parameters:
  • process_id (int

    Removes the process from the task manager's process list. All processes should unregister when they are no longer available for accepting tasks. The task manager will also unregister processes itself if they do not ping the task manager at the promised frequency.

    ) - the id of the process