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¶
MPI parent class for R matrix generated from in-situ observations. |
|
MPI parent data provider. |
Functions¶
|
Compute segments for distributing data to MPI worker processes. |
|
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:
- 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.MpiDensePostRMPI 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.AbstractDataProviderMPI 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.