SimPEG.meta.DaskMetaSimulation#

class SimPEG.meta.DaskMetaSimulation(simulations, mappings, client)[source]#

Bases: MetaSimulation

Dask Distributed version of simulation of simulations.

This class makes use of dask.distributed module to provide concurrency, executing the internal simulations in parallel. This class is meant to be a (mostly) drop in replacement for MetaSimulation. If you want to test your implementation, we recommend starting with a small problem using MetaSimulation, then switching it to this class. the serial version of this class is good for testing correctness.

Parameters:
simulations(n_sim) list of SimPEG.simulation.BaseSimulation or list of dask.distributed.Future

The list of unique simulations (or futures that would return a simulation) that each handle a piece of the problem.

mappings(n_sim) list of SimPEG.maps.IdentityMap or list of dask.distributed.Future

The map for every simulation (or futures that would return a map). Every map should accept the same length model, and output a model appropriate for its paired simulation.

clientdask.distributed.Client, optional

The dask client to use for communication.

Attributes

clean_on_model_update

A list of solver objects to clean when the model is updated

client

The distributed client that handles the internal tasks.

counter

SimPEG Counter object to store iterations and run-times.

deleteTheseOnModelUpdate

A list of properties stored on this object to delete when the model is updated

mappings

The future mappings paired to each simulation.

mesh

Mesh for the simulation.

model

The inversion model.

needs_model

True if a model is necessary

sensitivity_path

Path to directory where sensitivity file is stored.

simulations

The future list of simulations.

solver

Numerical solver used in the forward simulation.

solver_opts

Solver-specific parameters.

survey

The survey for the simulation.

verbose

Verbose progress printout.

Methods

Jtvec(m, v[, f])

Compute the Jacobian transpose times a vector for the model provided.

Jtvec_approx(m, v[, f])

Approximation of the Jacobian transpose times a vector for the model provided.

Jvec(m, v[, f])

Compute the Jacobian times a vector for the model provided.

Jvec_approx(m, v[, f])

Approximation of the Jacobian times a vector for the model provided.

dpred([m, f])

Predicted data for the model provided.

fields(m)

Create fields for every simulation.

getJtJdiag(m[, W, f])

Return the squared sum of columns of the Jacobian.

make_synthetic_data(m[, relative_error, ...])

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.