memory_full_cache module¶
Caching module to avoid multiple evaluations of a discipline¶
Classes:
|
Cache using memory to cache all data. |
- class gemseo.caches.memory_full_cache.MemoryFullCache(tolerance=0.0, name=None, is_memory_shared=True)[source]¶
Bases:
gemseo.core.cache.AbstractFullCache
Cache using memory to cache all data.
Initialize a dictionary to cache data.
Initialize cache tolerance. By default, don’t use approximate cache. It is up to the user to choose to optimize CPU time with this or not could be something like 2 * finfo(float).eps
- Parameters
tolerance (float) – Tolerance that defines if two input vectors are equal and cached data shall be returned. If 0, no approximation is made. Default: 0.
name (str) – Name of the cache.
is_memory_shared (bool) – If True, a shared memory dict is used to store the data, which makes the cache compatible with multiprocessing. WARNING: if set to False, and multiple disciplines point to the same cache or the process is multiprocessed, there may be duplicate computations because the cache will not be shared among the processes.
Examples
>>> from gemseo.caches.memory_full_cache import MemoryFullCache >>> cache = MemoryFullCache()
Attributes:
Copy cache.
Return the inputs names.
Get the maximal length of the cache (the maximal number of stored elements).
Return the outputs names.
List of samples indices.
Return the variables sizes.
Methods:
cache_jacobian
(input_data, input_names, jacobian)Cache jacobian data to avoid re evaluation.
cache_outputs
(input_data, input_names, …)Cache data to avoid re evaluation.
clear
()Clear the cache.
export_to_dataset
([name, by_group, …])Set Dataset from a cache.
export_to_ggobi
(file_path[, inputs_names, …])Export history to xml file format for ggobi tool.
get_all_data
([as_iterator])Return all the data in the cache.
get_data
(index, **options)Gets the data associated to a sample ID.
Retrieve the last execution inputs.
Retrieve the last execution outputs.
Get the length of the cache, ie the number of stored elements.
get_outputs
(input_data[, input_names])Check if the discipline has already been evaluated for the given input data dictionary.
merge
(other_cache)Merges an other cache with self.
- INPUTS_GROUP = 'inputs'¶
- JACOBIAN_GROUP = 'jacobian'¶
- OUTPUTS_GROUP = 'outputs'¶
- SAMPLE_GROUP = 'sample'¶
- cache_jacobian(input_data, input_names, jacobian)¶
Cache jacobian data to avoid re evaluation.
- Parameters
input_data (dict) – Input data to cache.
input_names (list(str)) – List of input data names.
jacobian (dict) – Jacobian to cache.
- cache_outputs(input_data, input_names, output_data, output_names=None)¶
Cache data to avoid re evaluation.
- Parameters
input_data (dict) – Input data to cache.
input_names (list(str)) – List of input data names.
output_data (dict) – Output data to cache.
output_names (list(str)) – List of output data names. If None, use all output names. Default: None.
- clear()[source]¶
Clear the cache.
Examples
>>> from gemseo.caches.memory_full_cache import MemoryFullCache >>> from numpy import array >>> cache = MemoryFullCache() >>> for index in range(5): >>> data = {'x': array([1.])*index, 'y': array([.2])*index} >>> cache.cache_outputs(data, ['x'], data, ['y']) >>> cache.get_length() 5 >>> cache.clear() >>> cache.get_length() 0
- property copy¶
Copy cache.
- export_to_dataset(name=None, by_group=True, categorize=True, inputs_names=None, outputs_names=None)¶
Set Dataset from a cache.
- Parameters
name (str) – dataset name.
by_group (bool) – if True, store the data by group. Otherwise, store them by variables. Default: True
categorize (bool) – distinguish between the different groups of variables. Default: True.
inputs_names (list(str)) – list of inputs names. If None, use all inputs. Default: None.
outputs_names (list(str)) – list of outputs names. If None, use all outputs. Default: None.
- export_to_ggobi(file_path, inputs_names=None, outputs_names=None)¶
Export history to xml file format for ggobi tool.
- Parameters
file_path (str) – Path to export the file.
inputs_names (list(str)) – List of inputs to include in the export. By default, take all of them.
outputs_names (list(str)) – Names of outputs to export. By default, take all of them.
- get_all_data(as_iterator=False)¶
Return all the data in the cache.
- Parameters
as_iterator (bool) – If True, return an iterator. Otherwise a dictionary. Default: False.
- Returns
all_data – A dictionary of dictionaries for inputs, outputs and jacobian where keys are data indices.
- Return type
dict
- get_data(index, **options)¶
Gets the data associated to a sample ID.
- Parameters
index (str) – sample ID.
options – options passed to the _read_data() method.
- Returns
input data, output data and jacobian.
- Return type
dict
- get_last_cached_inputs()¶
Retrieve the last execution inputs.
- Returns
inputs – Last cached inputs.
- Return type
dict
- get_last_cached_outputs()¶
Retrieve the last execution outputs.
- Returns
outputs – Last cached outputs.
- Return type
dict
- get_length()¶
Get the length of the cache, ie the number of stored elements.
- Returns
length – Length of the cache.
- Return type
int
- get_outputs(input_data, input_names=None)¶
Check if the discipline has already been evaluated for the given input data dictionary. If True, return the associated cache, otherwise return None.
- Parameters
input_data (dict) – Input data dictionary to test for caching.
input_names (list(str)) – List of input data names.
- Returns
output_data (dict) – Output data if there is no need to evaluate the discipline. None otherwise.
jacobian (dict) – Jacobian if there is no need to evaluate the discipline. None otherwise.
- property inputs_names¶
Return the inputs names.
- property max_length¶
Get the maximal length of the cache (the maximal number of stored elements).
- Returns
length – Maximal length of the cache.
- Return type
int
- merge(other_cache)¶
Merges an other cache with self.
- Parameters
other_cache (AbstractFullCache) – Cache to merge with the current one.
- property outputs_names¶
Return the outputs names.
- property samples_indices¶
List of samples indices.
- property varsizes¶
Return the variables sizes.