dubfi.fluxes.dataprovider_mpi

MPI parent module for flux inversion using in-situ data.

This module provides tools for orchestrating the MPI parallelized flux inversion. Worker processes read data and configuration from files, controlled by this module.

Changed in version 0.1.2: renamed module

Added in version 0.1.0: initial release

Classes

MpiInsituPostR

MPI parent class for R matrix generated from in-situ observations.

MpiDistMecReader

MPI parent data provider.

Functions

segments_from_config(→ dubfi.linalg.segments.Segments)

Compute segments for distributing data to MPI worker processes.

configs_agree(→ bool)

Check whether two inversion configurations are compatible.

Module Contents

dubfi.fluxes.dataprovider_mpi.segments_from_config(config: dict, coords: dict, num_segments: int, debug_plot: bool = False) dubfi.linalg.segments.Segments

Compute segments for distributing data to MPI worker processes.

Parameters:
  • config (dict) – inversion configuration

  • coords (dict) – coordinates as provided by dubfi.fluxes.readobs.coordinates_from_config()

  • num_segments (int) – number of segments (must be positive)

  • debug_plot (bool, default=False) – show a plot to illustrate the result

Returns:

collection of segments

Return type:

Segments

dubfi.fluxes.dataprovider_mpi.configs_agree(cfg1: dict, cfg2: dict) bool

Check whether two inversion configurations are compatible.

class dubfi.fluxes.dataprovider_mpi.MpiInsituPostR(seg: dubfi.linalg.segments.Segments)

Bases: dubfi.linalg.mpi_parent.MpiDensePostR

MPI parent class for R matrix generated from in-situ observations.

This class seems trivial, but the corresponding worker class differs from the one for MpiDensePostR.

class dubfi.fluxes.dataprovider_mpi.MpiDistMecReader(seg: dubfi.linalg.segments.Segments)

Bases: dubfi.linalg.mpi_parent.MpiObj, dubfi.fluxes.dataprovider.AbstractDataProvider

MPI parent data provider.

Prepare the inversion including worker processes.

property config: dict

Inversion configuration.

property coords: dict

Data coordinates, see dubfi.fluxes.readobs.coordinates_from_config().

classmethod fromconfig(config: dict, target_cfg: str, num_segments: int = -1)

Create from inversion configuration.

This reads the data and prepares the inversion. The worker processes are also initialized, but they must be created before using CTX.init().

Parameters:
  • config (dict) – inversion configuration

  • target_cfg (str) – path to target configuration file. The configuration will be written to this file path for the worker processes.

  • num_segments (int, optional) – number of segments, defaults to the number of available MPI worker processes

get_Y() dubfi.linalg.mpi_parent.MpiVector

Create Y: observation or observation minus model vector.

get_H() dubfi.linalg.mpi_parent.MpiLinParamVector

Create H: parametrized model vector (“observation operator”).

get_R() MpiInsituPostR

Create R: parametrized error covariance matrix of model data mismatch.

get_mdm_eigenbasis_size() int

Get size of self.get_R().validate_uncertainty_statistics(mdm) output.