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

HasModel.deleteTheseOnModelUpdate has been deprecated.

mappings

The future mappings paired to each 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.

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.