|
TECA
The Toolkit for Extreme Climate Analysis
|
Base class for MPI + threads map reduce reduction over an index. More...
#include <teca_index_reduce.h>
Public Member Functions | |
| teca_index_reduce (const teca_index_reduce &src)=delete | |
| teca_index_reduce (teca_index_reduce &&src)=delete | |
| teca_index_reduce & | operator= (const teca_index_reduce &src)=delete |
| teca_index_reduce & | operator= (teca_index_reduce &&src)=delete |
| void | set_start_index (const long &v) |
| const long & | get_start_index () const |
| void | set_end_index (const long &v) |
| const long & | get_end_index () const |
Public Member Functions inherited from teca_threaded_algorithm | |
| std::shared_ptr< teca_threaded_algorithm > | shared_from_this () |
| std::shared_ptr< teca_threaded_algorithm const > | shared_from_this () const |
| teca_threaded_algorithm (const teca_threaded_algorithm &src)=delete | |
| teca_threaded_algorithm (teca_threaded_algorithm &&src)=delete | |
| teca_threaded_algorithm & | operator= (const teca_threaded_algorithm &src)=delete |
| teca_threaded_algorithm & | operator= (teca_threaded_algorithm &&src)=delete |
| const char * | get_class_name () const override |
| void | set_thread_pool_size (int n_threads) |
| unsigned int | get_thread_pool_size () const noexcept |
| Get the number of threads in the pool. More... | |
| void | set_data_request_queue (const p_teca_data_request_queue &queue) |
| void | set_verbose (const int &v) |
| const int & | get_verbose () const |
| void | set_bind_threads (const int &v) |
| const int & | get_bind_threads () const |
| void | set_stream_size (const int &v) |
| const int & | get_stream_size () const |
| void | set_poll_interval (const long long &v) |
| const long long & | get_poll_interval () const |
Public Member Functions inherited from teca_algorithm | |
| teca_algorithm (const teca_algorithm &src)=delete | |
| teca_algorithm (teca_algorithm &&src)=delete | |
| teca_algorithm & | operator= (const teca_algorithm &src)=delete |
| teca_algorithm & | operator= (teca_algorithm &&src)=delete |
| void | set_communicator (MPI_Comm comm) |
| MPI_Comm | get_communicator () |
| get the active communicator More... | |
| virtual teca_algorithm_output_port | get_output_port (unsigned int port=0) |
| void | set_input_connection (const teca_algorithm_output_port &port) |
| set an input to this algorithm More... | |
| virtual void | set_input_connection (unsigned int id, const teca_algorithm_output_port &port) |
| set an input to this algorithm More... | |
| virtual void | remove_input_connection (unsigned int id) |
| remove input connections More... | |
| void | clear_input_connections () |
| remove all input connections More... | |
| const_p_teca_dataset | get_output_data (unsigned int port=0) |
| void | pop_cache (unsigned int port=0, int top=0) |
| void | set_cache_size (unsigned int n) |
| set the cache size. the default is 1. (threadsafe) More... | |
| virtual int | update () |
| execute the pipeline from this instance up. More... | |
| virtual int | update (unsigned int port) |
| execute the pipeline from this instance up. More... | |
| virtual teca_metadata | update_metadata (unsigned int port=0) |
| get meta data considering this instance up. More... | |
| void | set_executive (p_teca_algorithm_executive exe) |
| set the executive More... | |
| p_teca_algorithm_executive | get_executive () |
| get the executive More... | |
| virtual void | to_stream (std::ostream &s) const |
| virtual void | from_stream (std::istream &s) |
| deserialize from the stream. More... | |
| void | set_verbose (const int &v) |
| const int & | get_verbose () const |
Protected Member Functions | |
| virtual p_teca_dataset | reduce (const const_p_teca_dataset &left, const const_p_teca_dataset &right)=0 |
| virtual p_teca_dataset | finalize (const const_p_teca_dataset &ds) |
| virtual std::vector< teca_metadata > | initialize_upstream_request (unsigned int port, const std::vector< teca_metadata > &input_md, const teca_metadata &request)=0 |
| virtual teca_metadata | initialize_output_metadata (unsigned int port, const std::vector< teca_metadata > &input_md)=0 |
| std::vector< teca_metadata > | get_upstream_request (unsigned int port, const std::vector< teca_metadata > &input_md, const teca_metadata &request) override |
| const_p_teca_dataset | execute (unsigned int port, const std::vector< const_p_teca_dataset > &input_data, const teca_metadata &request, int streaming) override |
| teca_metadata | get_output_metadata (unsigned int port, const std::vector< teca_metadata > &input_md) override |
Protected Member Functions inherited from teca_threaded_algorithm | |
| const_p_teca_dataset | execute (unsigned int port, const std::vector< const_p_teca_dataset > &input_data, const teca_metadata &request) override |
| const_p_teca_dataset | request_data (teca_algorithm_output_port &port, const teca_metadata &request) override |
Protected Member Functions inherited from teca_algorithm | |
| void | set_number_of_input_connections (unsigned int n) |
| void | set_number_of_output_ports (unsigned int n) |
| virtual void | set_modified () |
| void | set_modified (unsigned int port) |
| an overload to set_modified by port More... | |
| virtual teca_metadata | get_cache_key (unsigned int port, const teca_metadata &request) const |
| virtual teca_metadata | get_output_metadata (teca_algorithm_output_port ¤t) |
| virtual int | validate_cache (teca_algorithm_output_port ¤t) |
| virtual void | clear_modified (teca_algorithm_output_port current) |
| const_p_teca_dataset | get_output_data (unsigned int port, const teca_metadata &request) |
| int | cache_output_data (unsigned int port, const teca_metadata &request, const_p_teca_dataset &data) |
| void | clear_cache (unsigned int port) |
| clear the cache on the given output port More... | |
| unsigned int | get_number_of_input_connections () |
| get the number of input connections More... | |
| teca_algorithm_output_port & | get_input_connection (unsigned int i) |
| void | clear_modified (unsigned int port) |
| clear the modified flag on the i'th output More... | |
| int | get_modified (unsigned int port) const |
| return the output port's modified flag value More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from teca_threaded_algorithm | |
| static p_teca_threaded_algorithm | New () |
Protected Attributes inherited from teca_algorithm | |
| int | verbose |
Base class for MPI + threads map reduce reduction over an index.
The available indices are partitioned across MPI ranks and threads. One can restrict operation to a range of time steps by setting first and last indices to process.
metadata keys:
requires:
index_initializer_key -- holds the name of the key that tells how
many indices are available. the named key
must also be present and should contain the
number of indices available
index_request_key -- holds the name of the key used to request
a specific index. request are generated with this
name set to a specific index to be processed some
upstream algorithm is expected to produce the
data associated with the given index
consumes:
The key named by index_request_key
|
inline |
Get the value of the end_index algorithm property
|
overrideprotectedvirtual |
implementations must override this method to provide information to downstream consumers about what data will be produced on each output port. The port to provide information about is named in the first argument the second argument contains a list of the metadata describing data on all of the inputs.
Reimplemented from teca_algorithm.
|
inline |
Get the value of the start_index algorithm property
|
overrideprotectedvirtual |
implementations must override this method and generate a set of requests describing the data required on the inputs to produce data for the named output port, given the upstream meta data and request. If no data is needed on an input then the list should contain a null request.
Reimplemented from teca_algorithm.
|
inline |
Set the value of the end_index algorithm property
|
inline |
Set the value of the start_index algorithm property