Skip to content

Commit d2af243

Browse files
Nesterov AlexanderNesterov Alexander
Nesterov Alexander
and
Nesterov Alexander
authored
Changes for build (#35)
* cmake version change and clang-tidy clear * update travis for new cmake version * update cmake install script * Update install_latest_cmake.sh * update latest version of CMakeLists.txt * update latest version of CMakeLists.txt 2 * update latest version of CMakeLists.txt 3 * update latest version of CMakeLists.txt 4 * update latest version of CMakeLists.txt 5 * update latest version of CMakeLists.txt 6 * update latest version of CMakeLists.txt 7 * final update version cmake Co-authored-by: Nesterov Alexander <[email protected]>
1 parent 749b35a commit d2af243

File tree

13 files changed

+47
-33
lines changed

13 files changed

+47
-33
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ cmake-build-debug
66
.vscode/
77
scripts/variants.csv
88
scripts/variants.xlsx
9-
venv
9+
venv*
1010
sln/

.travis.yml

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ before_install:
4242
- eval "${MATRIX_EVAL}"
4343

4444
install:
45+
- source scripts/install_latest_cmake.sh
4546
- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then brew update-reset; fi
4647
- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then brew unlink python@2; fi
4748
- if [[ $TRAVIS_OS_NAME == 'osx' ]]; then brew install open-mpi libomp tbb; fi

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required( VERSION 3.9 )
1+
cmake_minimum_required( VERSION 3.15 )
22

33
message( STATUS "Parallel Programming Course" )
44

modules/test_tasks/test_mpi/ops_mpi.cpp

+6-7
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@
33
#include <vector>
44
#include <string>
55
#include <random>
6-
#include <ctime>
76
#include <algorithm>
87
#include "../../../modules/test_tasks/test_mpi/ops_mpi.h"
98

109

1110
std::vector<int> getRandomVector(int sz) {
12-
std::mt19937 gen;
13-
gen.seed(static_cast<unsigned int>(time(0)));
11+
std::random_device dev;
12+
std::mt19937 gen(dev());
1413
std::vector<int> vec(sz);
1514
for (int i = 0; i < sz; i++) { vec[i] = gen() % 100; }
1615
return vec;
1716
}
1817

19-
int getSequentialOperations(std::vector<int> vec, std::string ops) {
18+
int getSequentialOperations(std::vector<int> vec, const std::string& ops) {
2019
const int sz = vec.size();
2120
int reduction_elem = 0;
2221
if (ops == "+") {
@@ -37,15 +36,15 @@ int getSequentialOperations(std::vector<int> vec, std::string ops) {
3736
}
3837

3938
int getParallelOperations(std::vector<int> global_vec,
40-
int count_size_vector, std::string ops) {
39+
int count_size_vector, const std::string& ops) {
4140
int size, rank;
4241
MPI_Comm_size(MPI_COMM_WORLD, &size);
4342
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
4443
const int delta = count_size_vector / size;
4544

4645
if (rank == 0) {
4746
for (int proc = 1; proc < size; proc++) {
48-
MPI_Send(&global_vec[0] + proc * delta, delta,
47+
MPI_Send(global_vec.data() + proc * delta, delta,
4948
MPI_INT, proc, 0, MPI_COMM_WORLD);
5049
}
5150
}
@@ -56,7 +55,7 @@ int getParallelOperations(std::vector<int> global_vec,
5655
global_vec.begin() + delta);
5756
} else {
5857
MPI_Status status;
59-
MPI_Recv(&local_vec[0], delta, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
58+
MPI_Recv(local_vec.data(), delta, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
6059
}
6160

6261
int global_sum = 0;

modules/test_tasks/test_mpi/ops_mpi.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
std::vector<int> getRandomVector(int sz);
99
int getParallelOperations(std::vector<int> global_vec,
10-
int count_size_vector, std::string ops);
11-
int getSequentialOperations(std::vector<int> vec, std::string ops);
10+
int count_size_vector, const std::string& ops);
11+
int getSequentialOperations(std::vector<int> vec, const std::string& ops);
1212

1313
#endif // MODULES_TEST_TASKS_TEST_MPI_OPS_MPI_H_

modules/test_tasks/test_omp/ops_omp.cpp

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
#include <vector>
44
#include <string>
55
#include <random>
6-
#include <ctime>
6+
#include <iostream>
77
#include "../../../modules/test_tasks/test_omp/ops_omp.h"
88

99
std::vector<int> getRandomVector(int sz) {
10-
std::mt19937 gen;
11-
gen.seed(static_cast<unsigned int>(time(0)));
10+
std::random_device dev;
11+
std::mt19937 gen(dev());
1212
std::vector<int> vec(sz);
1313
for (int i = 0; i < sz; i++) { vec[i] = gen() % 100; }
1414
return vec;
1515
}
1616

17-
int getParallelOperations(std::vector<int> vec, std::string ops) {
17+
int getParallelOperations(std::vector<int> vec, const std::string& ops) {
1818
const int sz = vec.size();
1919
int reduction_elem = 1;
20+
double start = omp_get_wtime();
2021
if (ops == "+") {
2122
#pragma omp parallel for reduction(+:reduction_elem)
2223
for (int i = 0; i < sz; i++) {
@@ -33,10 +34,12 @@ int getParallelOperations(std::vector<int> vec, std::string ops) {
3334
reduction_elem *= vec[i];
3435
}
3536
}
37+
double finish = omp_get_wtime();
38+
std::cout << "How measure time in OpenMP: " << finish - start << std::endl;
3639
return reduction_elem;
3740
}
3841

39-
int getSequentialOperations(std::vector<int> vec, std::string ops) {
42+
int getSequentialOperations(std::vector<int> vec, const std::string& ops) {
4043
const int sz = vec.size();
4144
int reduction_elem = 1;
4245
if (ops == "+") {

modules/test_tasks/test_omp/ops_omp.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <string>
77

88
std::vector<int> getRandomVector(int sz);
9-
int getParallelOperations(std::vector<int> vec, std::string ops);
10-
int getSequentialOperations(std::vector<int> vec, std::string ops);
9+
int getParallelOperations(std::vector<int> vec, const std::string& ops);
10+
int getSequentialOperations(std::vector<int> vec, const std::string& ops);
1111

1212
#endif // MODULES_TEST_TASKS_TEST_OMP_OPS_OMP_H_

modules/test_tasks/test_std/ops_std.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@
33
#include <string>
44
#include <utility>
55
#include <random>
6-
#include <ctime>
76
#include <iostream>
87
#include "../../../modules/test_tasks/test_std/ops_std.h"
98
#include "../../../3rdparty/unapproved/unapproved.h"
109

1110
std::vector<int> getRandomVector(int sz) {
12-
std::mt19937 gen;
13-
gen.seed(static_cast<unsigned int>(time(0)));
11+
std::random_device dev;
12+
std::mt19937 gen(dev());
1413
std::vector<int> vec(sz);
1514
for (int i = 0; i < sz; i++) { vec[i] = gen() % 100; }
1615
return vec;
1716
}
1817

19-
void atomOps(std::vector<int> vec, std::string ops, std::promise<int> &&pr) {
18+
void atomOps(std::vector<int> vec, const std::string& ops, std::promise<int> &&pr) {
2019
const int sz = vec.size();
2120
int reduction_elem = 0;
2221
if (ops == "+") {
@@ -31,7 +30,7 @@ void atomOps(std::vector<int> vec, std::string ops, std::promise<int> &&pr) {
3130
pr.set_value(reduction_elem);
3231
}
3332

34-
int getParallelOperations(std::vector<int> vec, std::string ops) {
33+
int getParallelOperations(std::vector<int> vec, const std::string& ops) {
3534
const int nthreads = std::thread::hardware_concurrency();
3635
const int delta = (vec.end() - vec.begin()) / nthreads;
3736

@@ -56,7 +55,7 @@ int getParallelOperations(std::vector<int> vec, std::string ops) {
5655
return reduction_elem;
5756
}
5857

59-
int getSequentialOperations(std::vector<int> vec, std::string ops) {
58+
int getSequentialOperations(std::vector<int> vec, const std::string& ops) {
6059
const int sz = vec.size();
6160
int reduction_elem = 0;
6261
if (ops == "+") {

modules/test_tasks/test_std/ops_std.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <string>
77

88
std::vector<int> getRandomVector(int sz);
9-
int getParallelOperations(std::vector<int> vec, std::string ops);
10-
int getSequentialOperations(std::vector<int> vec, std::string ops);
9+
int getParallelOperations(std::vector<int> vec, const std::string& ops);
10+
int getSequentialOperations(std::vector<int> vec, const std::string& ops);
1111

1212
#endif // MODULES_TEST_TASKS_TEST_STD_OPS_STD_H_

modules/test_tasks/test_tbb/ops_tbb.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
#include <vector>
44
#include <string>
55
#include <random>
6-
#include <ctime>
76
#include <functional>
87
#include <numeric>
98
#include "../../../modules/test_tasks/test_tbb/ops_tbb.h"
109

1110
std::vector<int> getRandomVector(int sz) {
12-
std::mt19937 gen;
13-
gen.seed(static_cast<unsigned int>(time(0)));
11+
std::random_device dev;
12+
std::mt19937 gen(dev());
1413
std::vector<int> vec(sz);
1514
for (int i = 0; i < sz; i++) { vec[i] = gen() % 100; }
1615
return vec;
@@ -36,7 +35,7 @@ struct Mult {
3635
void join(const Mult& rhs) { value *= rhs.value; }
3736
};
3837

39-
int getParallelOperations(std::vector<int> vec, std::string ops) {
38+
int getParallelOperations(std::vector<int> vec, const std::string& ops) {
4039
int reduction_elem = 1;
4140
if (ops == "+") {
4241
Sum sum;
@@ -60,7 +59,7 @@ int getParallelOperations(std::vector<int> vec, std::string ops) {
6059
return reduction_elem;
6160
}
6261

63-
int getSequentialOperations(std::vector<int> vec, std::string ops) {
62+
int getSequentialOperations(std::vector<int> vec, const std::string& ops) {
6463
const int sz = vec.size();
6564
int reduction_elem = 1;
6665
if (ops == "+") {

modules/test_tasks/test_tbb/ops_tbb.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <string>
77

88
std::vector<int> getRandomVector(int sz);
9-
int getParallelOperations(std::vector<int> vec, std::string ops);
10-
int getSequentialOperations(std::vector<int> vec, std::string ops);
9+
int getParallelOperations(std::vector<int> vec, const std::string& ops);
10+
int getSequentialOperations(std::vector<int> vec, const std::string& ops);
1111

1212
#endif // MODULES_TEST_TASKS_TEST_TBB_OPS_TBB_H_

scripts/install_latest_cmake.sh

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
2+
# shellcheck disable=SC2164
3+
mkdir "${DEPS_DIR}" && cd "${DEPS_DIR}"
4+
5+
if [[ $TRAVIS_OS_NAME == 'linux' ]]; then
6+
travis_retry wget --no-check-certificate https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz
7+
tar -xvf cmake-3.18.0-Linux-x86_64.tar.gz > /dev/null
8+
mv cmake-3.18.0-Linux-x86_64 cmake-install
9+
fi
10+
11+
PATH=${DEPS_DIR}/cmake-install:${DEPS_DIR}/cmake-install/bin:$PATH
12+
# shellcheck disable=SC2164
13+
cd "${TRAVIS_BUILD_DIR}"

0 commit comments

Comments
 (0)