parallel¶
The parallel module provides tools aimed at parallel computing. At this point
all parallel solutions use the fork
system call and are supported on limited
platforms, notably excluding Windows. On unsupported platforms parallel features
will disable and a warning is printed.
-
nutils.parallel.
fork
(nprocs)¶ continue as
nprocs
parallel processes by forkingnprocs-1
timesIt is up to the user to prepare shared memory and/or locks for inter-process communication. As a safety measure nested forks are blocked by setting the global
procid
variable; all secondary forks will be silently ignored.
-
nutils.parallel.
shempty
(shape, dtype=<class 'float'>)¶ create uninitialized array in shared memory
-
nutils.parallel.
shzeros
(shape, dtype=<class 'float'>)¶ create zero-initialized array in shared memory
-
class
nutils.parallel.
range
(stop)¶ Bases:
object
a shared range-like iterable that yields every index exactly once
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
nutils.parallel.
pariter
(items, nprocs)¶ iterate in parallel
Fork into
nprocs
subprocesses, then yield items from iterable such that all processes receive a nonoverlapping subset of the total.NOTE: Pariter is deprecated because a child proces may not be ended if it forcably breaks out of the loop. Instead a
fork
context should be used in combination with a sharedrange
interator.- Parameters
iterable – The collection of items to be distributed over processors
nprocs (
int
) – Maximum number of processers to use
- Yields
Items from iterable, distributed over at most nprocs processors.