Coverage for local/lib/python2.7/site-packages/sage/parallel/reference.py : 57%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
|
""" Reference Parallel Primitives
These are reference implementations of basic parallel primitives. These are not actually parallel, but work the same way. They are good for testing. """ from __future__ import print_function, absolute_import
from sage.misc.prandom import shuffle
def parallel_iter(f, inputs): """ Reference parallel iterator implementation.
INPUT:
- ``f`` -- a Python function that can be pickled using the pickle_function command.
- ``inputs`` -- a list of pickleable pairs (args, kwds), where args is a tuple and kwds is a dictionary.
OUTPUT:
- iterator over 2-tuples ``(inputs[i], f(inputs[i]))``, where the order may be completely random
EXAMPLES::
sage: def f(N,M=10): return N*M sage: inputs = [((2,3),{}), (tuple([]), {'N':3,'M':5}), ((2,),{})] sage: set_random_seed(0) sage: for a, val in sage.parallel.reference.parallel_iter(f, inputs): ....: print((a, val)) (((2,), {}), 20) (((), {'M': 5, 'N': 3}), 15) (((2, 3), {}), 6) sage: for a, val in sage.parallel.reference.parallel_iter(f, inputs): ....: print((a, val)) (((), {'M': 5, 'N': 3}), 15) (((2,), {}), 20) (((2, 3), {}), 6) """ |