Skip to content

Commit cde961f

Browse files
authored
Fix newly appeared clang-tidy readability-function-cognitive-complexity errors (#366)
1 parent 3fb6776 commit cde961f

File tree

2 files changed

+32
-14
lines changed

2 files changed

+32
-14
lines changed

Diff for: tasks/mpi/example/include/ops_mpi.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ class TestTaskMPI : public ppc::core::Task {
1818
private:
1919
std::vector<int> input_, output_;
2020
int rc_size_{};
21+
22+
void MultiplyMatrixBasedOnRank();
23+
void MultiplyRowMajor();
24+
void MultiplyColumnMajor();
2125
};
2226

2327
} // namespace nesterov_a_test_task_mpi

Diff for: tasks/mpi/example/src/ops_mpi.cpp

+28-14
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,40 @@ bool nesterov_a_test_task_mpi::TestTaskMPI::ValidationImpl() {
2525
}
2626

2727
bool nesterov_a_test_task_mpi::TestTaskMPI::RunImpl() {
28+
MultiplyMatrixBasedOnRank();
29+
return true;
30+
}
31+
32+
void nesterov_a_test_task_mpi::TestTaskMPI::MultiplyMatrixBasedOnRank() {
2833
int rank = -1;
2934
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
3035

31-
auto multiply = [this](bool row_major) {
32-
for (int i = 0; i < rc_size_; ++i) {
33-
for (int j = 0; j < rc_size_; ++j) {
34-
int sum = 0;
35-
for (int k = 0; k < rc_size_; ++k) {
36-
int a = input_[(row_major ? i : k) * rc_size_ + (row_major ? k : i)];
37-
int b = input_[(row_major ? k : j) * rc_size_ + (row_major ? j : k)];
38-
sum += a * b;
39-
}
40-
output_[(i * rc_size_) + j] += sum;
36+
if (rank == 0) {
37+
MultiplyRowMajor();
38+
} else {
39+
MultiplyColumnMajor();
40+
}
41+
MPI_Barrier(MPI_COMM_WORLD);
42+
}
43+
44+
void nesterov_a_test_task_mpi::TestTaskMPI::MultiplyRowMajor() {
45+
for (int i = 0; i < rc_size_; ++i) {
46+
for (int j = 0; j < rc_size_; ++j) {
47+
for (int k = 0; k < rc_size_; ++k) {
48+
output_[(i * rc_size_) + j] += input_[(i * rc_size_) + k] * input_[(k * rc_size_) + j];
4149
}
4250
}
43-
};
51+
}
52+
}
4453

45-
multiply(rank == 0);
46-
MPI_Barrier(MPI_COMM_WORLD);
47-
return true;
54+
void nesterov_a_test_task_mpi::TestTaskMPI::MultiplyColumnMajor() {
55+
for (int j = 0; j < rc_size_; ++j) {
56+
for (int k = 0; k < rc_size_; ++k) {
57+
for (int i = 0; i < rc_size_; ++i) {
58+
output_[(i * rc_size_) + j] += input_[(i * rc_size_) + k] * input_[(k * rc_size_) + j];
59+
}
60+
}
61+
}
4862
}
4963

5064
bool nesterov_a_test_task_mpi::TestTaskMPI::PostProcessingImpl() {

0 commit comments

Comments
 (0)