pymor.parallel.basic¶
This module contains a base class for implementing WorkerPool.
Module Contents¶
- class pymor.parallel.basic.GenericRemoteObject(pool, remote_id, uid=None)[source]¶
Bases:
pymor.parallel.interface.RemoteObjectGeneric
RemoteObject.
- class pymor.parallel.basic.WorkerPoolBase[source]¶
Bases:
WorkerPoolDefaultImplementations,pymor.parallel.interface.WorkerPoolBasic
WorkerPool.Methods
Apply function in parallel on each worker.
Apply function on a single worker.
Parallel version of the builtin
mapfunction.Push a copy of
objto all workers of the pool.- apply(function, *args, **kwargs)[source]¶
Apply function in parallel on each worker.
This calls
functionon each worker in parallel, passingargsas positional andkwargsas keyword arguments. Keyword arguments which areRemoteObjectsare automatically mapped to the respective object on the worker. Moreover, keyword arguments which areimmutableobjects that have already been pushed to the workers will not be transmitted again. (Immutableobjects which have not been pushed before will be transmitted and the remote copy will be destroyed after function execution.)- Parameters:
function – The function to execute on each worker.
args – The positional arguments for
function.kwargs – The keyword arguments for
function.
- Returns:
List of return values of the function executions, ordered by
worker number (from
0tolen(pool) - 1).
- apply_only(function, worker, *args, **kwargs)[source]¶
Apply function on a single worker.
This calls
functionon on the worker with numberworker, passingargsas positional andkwargsas keyword arguments. Keyword arguments which areRemoteObjectsare automatically mapped to the respective object on the worker. Moreover, keyword arguments which areimmutableobjects that have already been pushed to the workers will not be transmitted again. (Immutableobjects which have not been pushed before will be transmitted and the remote copy will be destroyed after function execution.)- Parameters:
function – The function to execute.
worker – The worker on which to execute the function. (Number between
0andlen(pool) - 1.)args – The positional arguments for
function.kwargs – The keyword arguments for
function.
- Returns:
Return value of the function execution.
- map(function, *args, **kwargs)[source]¶
Parallel version of the builtin
mapfunction.Each positional argument (after
function) must be a sequence of same length n.mapcallsfunctionin parallel on each of these n positional argument combinations, always passingkwargsas keyword arguments. Keyword arguments which areRemoteObjectsare automatically mapped to the respective object on the worker. Moreover, keyword arguments which areimmutableobjects that have already been pushed to the workers will not be transmitted again. (Immutableobjects which have not been pushed before will be transmitted and the remote copy will be destroyed after function execution.)- Parameters:
function – The function to execute on each worker.
args – The sequences of positional arguments for
function.kwargs – The keyword arguments for
function.
- Returns:
List of return values of the function executions, ordered by
the sequence of positional arguments.
- push(obj)[source]¶
Push a copy of
objto all workers of the pool.A
RemoteObjectis returned as a handle to the pushed object. This object can be used as a keyword argument toapply,apply_only,mapand will then be transparently mapped to the respective copy of the pushed object on the worker.Immutableobjects will be pushed only once. If the sameimmutableobject is pushed a second time, the returnedRemoteObjectwill refer to the already transferred copy. It is therefore safe to usepushto ensure that a givenimmutableobject is available on the worker. No unnecessary copies will be created.- Parameters:
obj – The object to push to all workers.
- Returns:
A |RemoteObject| referring to the pushed data.