6 #include "../tensor/algstrct.h" 25 int const * new_edge_len,
26 int *
const * permutation,
28 int64_t * new_num_pair,
44 int const * new_edge_len,
45 int *
const * permutation,
70 int const * phys_phase,
101 int const * phys_phase,
102 int const * virt_dim,
108 int64_t
const * edge_lda,
109 std::function<
bool(
char const*)> f);
129 int const * phys_phase,
130 int const * virt_phase,
131 int const * bucket_lda,
132 int const * edge_len,
133 ConstPairIterator mapped_data,
134 int64_t * bucket_counts,
135 int64_t * bucket_off,
136 PairIterator bucket_data,
137 algstrct
const * sr);
154 int const * phys_phase,
155 int const * virt_phase,
156 int const * edge_len,
157 ConstPairIterator mapped_data,
158 PairIterator bucket_data,
159 algstrct
const * sr);
184 int const * edge_len,
187 int const * phys_phase,
188 int const * virt_dim,
193 algstrct
const * sr);
231 int const * edge_len,
234 int const * phys_phase,
235 int const * virt_phase,
236 int * virt_phys_rank,
237 int const * bucket_lda,
246 int64_t & nnz_loc_new);
270 int const * edge_len,
273 int const * phys_phase,
274 int const * virt_phase,
279 algstrct
const * sr);
293 void sp_read(algstrct
const * sr,
295 ConstPairIterator prs_tsr,
298 PairIterator prs_read,
320 ConstPairIterator vprs_tsr,
323 ConstPairIterator vprs_write,
void read_loc_pairs(int order, int64_t nval, int num_virt, int const *sym, int const *edge_len, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int *phase_rank, int64_t *nread, char const *data, char **pairs, algstrct const *sr)
read tensor pairs local to processor
void sp_write(int num_virt, algstrct const *sr, int64_t *vntsr, ConstPairIterator vprs_tsr, char const *beta, int64_t *vnwrite, ConstPairIterator vprs_write, char const *alpha, int64_t *vnnew, char *&pprs_new)
writes pairs in a sparse write set to the sparse set of elements defining the tensor, resulting in a set of size between ntsr and ntsr+nwrite
void sp_read(algstrct const *sr, int64_t ntsr, ConstPairIterator prs_tsr, char const *alpha, int64_t nread, PairIterator prs_read, char const *beta)
reads elements of a sparse set defining the tensor, into a sparse read set with potentially repeating...
void assign_keys(int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char const *vdata, char *vpairs, algstrct const *sr)
assigns keys to an array of values
void bucket_by_pe(int order, int64_t num_pair, int64_t np, int const *phys_phase, int const *virt_phase, int const *bucket_lda, int const *edge_len, ConstPairIterator mapped_data, int64_t *bucket_counts, int64_t *bucket_off, PairIterator bucket_data, algstrct const *sr)
buckets key-value pairs by processor according to distribution
void depermute_keys(int order, int num_pair, int const *edge_len, int const *new_edge_len, int *const *permutation, char *pairs_buf, algstrct const *sr)
depermutes keys (apply P^T)
void permute_keys(int order, int num_pair, int const *edge_len, int const *new_edge_len, int *const *permutation, char *pairs_buf, int64_t *new_num_pair, algstrct const *sr)
permutes keys
int64_t * bucket_by_virt(int order, int num_virt, int64_t num_pair, int const *phys_phase, int const *virt_phase, int const *edge_len, ConstPairIterator mapped_data, PairIterator bucket_data, algstrct const *sr)
buckets key value pairs by block/virtual-processor
void wr_pairs_layout(int order, int np, int64_t inwrite, char const *alpha, char const *beta, char rw, int num_virt, int const *sym, int const *edge_len, int const *padding, int const *phase, int const *phys_phase, int const *virt_phase, int *virt_phys_rank, int const *bucket_lda, char *wr_pairs_buf, char *rw_data, CommData glb_comm, algstrct const *sr, bool is_sparse, int64_t nnz_loc, int64_t *nnz_blk, char *&pprs_new, int64_t &nnz_loc_new)
read or write pairs from / to tensor
void spsfy_tsr(int order, int64_t size, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char const *vdata, char *&vpairs, int64_t *nnz_blk, algstrct const *sr, int64_t const *edge_lda, std::function< bool(char const *)> f)
extracts all tensor values (in pair format) that pass a sparsifier function (including padded zeros i...
void readwrite(int order, int64_t size, char const *alpha, char const *beta, int nvirt, int const *edge_len, int const *sym, int const *phase, int const *phys_phase, int const *virt_dim, int *phase_rank, char *vdata, char *pairs_buf, char rw, algstrct const *sr)
read or write pairs from / to tensor