|
| class | madness::ExchangeBatchLRU< keyT, dataT > |
| | Bounded cache of fetched exchange batches, keyed by cloud record key. More...
|
| |
| class | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM > |
| |
| struct | madness::ExchTaskProfile |
| | One task's record for the exchange profiler. More...
|
| |
| struct | madness::FinalizeNodeRec< T, NDIM > |
| | One coefficient node in transit during the exchange finalize. More...
|
| |
| class | madness::FinalizeReducer< T, NDIM > |
| | Receiving end of the exchange finalize, living in the world the transfer rides on. More...
|
| |
| class | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow |
| |
| class | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeSimple |
| |
| class | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeSimple::MacroTaskPartitionerExchange |
| | custom partitioning for the exchange operator in exchangeoperator.h More...
|
| |
| class | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeRow::MacroTaskPartitionerRow |
| | custom partitioning for the exchange operator in exchangeoperator.h More...
|
| |
| struct | madness::Exchange< T, NDIM >::ExchangeImpl< T, NDIM >::MacroTaskExchangeSimple::PrefetchSlot |
| | One batch requested ahead of the task that will read it. More...
|
| |
| struct | madness::ExchangeBatchLRU< keyT, dataT >::Slot |
| |
|
| template<typename T , std::size_t NDIM> |
| void | madness::coalesced_gaxpy (World &transport_world, FinalizeReducer< T, NDIM > &reducer, std::vector< Function< T, NDIM > > &dest_vec, std::vector< Function< T, NDIM > > &src_vec, const T beta, const std::size_t chunk_entries) |
| | Accumulate src_vec into dest_vec in bulk, one message per destination rank per chunk.
|
| |
| bool | madness::exch_force_general_path () |
| | Send a symmetric application down the general (bra, ket, vf) path? Read once per process.
|
| |
| bool | madness::exch_task_profile_enabled () |
| | Is per-task exchange profiling on? Read once per process.
|
| |
| void | madness::exch_write_cost_matrix (const long call_index, const long k, const long M, const std::vector< double > &cost) |
| | Write the measured per-task cost matrix of one application, for offline inspection.
|
| |
| void | madness::exch_write_task_profile (const ExchTaskProfile &p) |
| | Append one record to exch_taskprof.r<rank>.jsonl.
|
| |
| long | madness::exchange_batch_record_key (const long salt, const int dim, const Batch_1D &r) |
| | Deterministic cloud record key for one stored batch: (salt, dimension, range).
|
| |
| template<typename T , std::size_t NDIM> |
| long | madness::exchange_batch_salt (const std::vector< Function< T, NDIM > > &ket) |
| | Per-invocation salt for the exchange batch record keys, from the ket identities.
|
| |
| std::map< std::pair< long, long >, long > | madness::exchange_row_owner_assign (const long ncolumn, const long nrow, const long nworker) |
| | Owner of every task in the asymmetric grid: all tasks of a column go to one worker.
|
| |
| std::vector< std::pair< Batch_1D, Batch_1D > > | madness::exchange_row_owner_grid (const std::size_t ncolumn, const std::size_t nrow, const long nsubworld) |
| | The asymmetric task grid: every (column, row) pair over two independent splits.
|
| |
| std::vector< Batch_1D > | madness::exchange_row_owner_split (const std::size_t n, const long nsubworld) |
| | Batch boundaries for the asymmetric row/column split: one batch per rank.
|
| |
| template<typename T , std::size_t NDIM> |
| bool | madness::exchange_same_operands (const std::vector< Function< T, NDIM > > &a, const std::vector< Function< T, NDIM > > &b) |
| | Are these the same functions, so that one stored record can serve both operand roles?
|
| |
| std::map< std::pair< long, long >, long > | madness::exchange_sym_cost_aware_assign (const long n, const long M, const std::vector< double > &cost) |
| | Cost-aware owner assignment for the symmetric algorithm's triangular task matrix.
|
| |
| long | madness::exchange_sym_owner_nbatch (const std::size_t n, const long nsubworld, const long granularity_level) |
| | Number of batches M for the owner-pinned symmetric exchange algorithm.
|
| |
| std::vector< Batch_1D > | madness::exchange_sym_owner_split (const std::size_t n, const long nsubworld, const long granularity_level) |
| | Split a vector of length n into M = exchange_sym_owner_nbatch(...) contiguous batches.
|
| |
| std::map< std::pair< long, long >, long > | madness::exchange_sym_round_robin_assign (const long n, const long M) |
| | Round-robin owner assignment for the symmetric algorithm's triangular task matrix.
|
| |
| long | madness::exchange_sym_tri (const long i, const long j) |
| | Triangular index of a batch pair, collapsing (i,j) and (j,i): a*(a+1)/2 + b.
|
| |