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 forking nprocs-1 times

It 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.ctxrange(name, nprocs, nitems)

fork and yield shared range-like counter with percentage-style logging