| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include <vector> | ||
| 4 | |||
| 5 | #include "lobanov_d_multi_matrix_crs/common/include/common.hpp" | ||
| 6 | #include "task/include/task.hpp" | ||
| 7 | |||
| 8 | namespace lobanov_d_multi_matrix_crs { | ||
| 9 | |||
| 10 | ✗ | class LobanovMultyMatrixALL : public BaseTask { | |
| 11 | public: | ||
| 12 | static constexpr ppc::task::TypeOfTask GetStaticTypeOfTask() { | ||
| 13 | return ppc::task::TypeOfTask::kALL; | ||
| 14 | } | ||
| 15 | explicit LobanovMultyMatrixALL(const InType &in); | ||
| 16 | |||
| 17 | private: | ||
| 18 | bool ValidationImpl() override; | ||
| 19 | bool PreProcessingImpl() override; | ||
| 20 | bool RunImpl() override; | ||
| 21 | bool PostProcessingImpl() override; | ||
| 22 | |||
| 23 | static void DistributeSparseMatrix(CompressedRowMatrix &mat, int root, int rows, int cols); | ||
| 24 | static CompressedRowMatrix TransposeSparseMatrix(const CompressedRowMatrix &src); | ||
| 25 | static void ComputeLocalProduct(const CompressedRowMatrix &a, const CompressedRowMatrix &b_tr, int start_row, | ||
| 26 | int local_rows, std::vector<int> &row_nnz_counts, std::vector<double> &packed_vals, | ||
| 27 | std::vector<int> &packed_cols); | ||
| 28 | static void MergeLocalResults(int rank, int comm_size, int total_rows, int result_cols, int local_rows, | ||
| 29 | CompressedRowMatrix &result_mat, const std::vector<int> &row_nnz_counts, | ||
| 30 | const std::vector<double> &packed_vals, const std::vector<int> &packed_cols); | ||
| 31 | static void SortIndices(std::vector<int> &vec); | ||
| 32 | }; | ||
| 33 | |||
| 34 | } // namespace lobanov_d_multi_matrix_crs | ||
| 35 |