|
|
| 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 |
| |
|
If provided the extent defines the index space region [i0, i1, j0, j1, k0, k1] of data to request. If not provided the whole_extent is requested when the whole_extent key is present. Otherwise the request is not modified.
|
| void | set_extent (const extent_type &v) |
| |
| const extent_type & | get_extent () const |
| |
|
If provided the bounds defines the world coordinate space region [x0, x1, y0, y1, z0, z1] of data to request. bounds take precedence over extents. If bounds are not provided any provided extents will be used (see ::set_extents) otherwise the request is not modified.
|
| void | set_bounds (const bounds_type &v) |
| |
| const bounds_type & | get_bounds () const |
| |
|
set the list of arrays to request. If not provided then the request is not modified.
|
| size_t | get_number_of_arrays () |
| |
| void | append_array (const std::string &v) |
| |
| void | set_array (const std::string &v) |
| |
| void | set_array (size_t i, const std::string &v) |
| |
| void | set_arrays (const std::vector< std::string > &v) |
| |
| void | set_arrays (const std::initializer_list< std::string > &&l) |
| |
| const std::string & | get_array (size_t i) const |
| |
| const std::vector< std::string > & | get_arrays () const |
| |
| void | clear_arrays () |
| |
|
set the first index to process. Indices go from 0 to n-1. The default start_index is 0.
|
| void | set_start_index (const long &v) |
| |
| const long & | get_start_index () const |
| |
|
set the last index to process. Indices go from 0 to n-1. The default end_index is -1, which is used to indicate all indices should be processed.
|
| void | set_end_index (const long &v) |
| |
| const long & | get_end_index () const |
| |
| 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) |
| | explicitly set the thread pool to submit requests to More...
|
| |
| 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 |
| |
| void | set_threads_per_device (const int &v) |
| |
| const int & | get_threads_per_device () const |
| |
| void | set_ranks_per_device (const int &v) |
| |
| const int & | get_ranks_per_device () const |
| |
| void | set_propagate_device_assignment (const int &v) |
| |
| const int & | get_propagate_device_assignment () const |
| |
|
| 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 |
| |
|
| virtual p_teca_dataset | reduce (int device_id, const const_p_teca_dataset &left, const const_p_teca_dataset &right)=0 |
| |
| virtual p_teca_dataset | finalize (int device_id, 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) |
| |
| virtual teca_metadata | initialize_output_metadata (unsigned int port, const std::vector< teca_metadata > &input_md) |
| |
| 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 |
| | consumes index metadata, and partitions indices across MPI ranks. More...
|
| |
|
virtual const_p_teca_dataset | execute (unsigned int port, const std::vector< const_p_teca_dataset > &input_data, const teca_metadata &request, int streaming) |
| |
|
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 | 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 |
| |
| 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...
|
| |
Base class for MPI+threads+GPUs map reduce reduction over a set of indices.
The available indices are partitioned across MPI ranks and threads. Threads are assigned to service GPUs or CPU cores. One can restrict operation to a range of time steps by setting first and last indices to process.
metadata keys:
Requires:
| key | description |
| 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. Requests 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. |
Exports:
| Key | Description |
| index_request_key | The name of the key holding the requested index |
| <index_request_key> | the requested index |
| device_id | the CPU (-1) or CUDA device (0 - n-1 devices) to |
| use for calculations |
| bounds | the [x0 x1 y0 y1 z0 z1] spatial bounds requested |
| (optional) |
| extent | the [i0 i1 j0 j1 k0 k1] index space grid extent |
| requested (optional) |
| arrays | a list of arrays requested (optional) |