Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.12.2022
Сообщений: 137

Паралельное вычисление

19.09.2024, 14:55. Показов 1142. Ответов 11

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
double* solveUpperTriangularSystemParallel(const double* U, const double* b, int n, int numThreads) {
    double* y = new double[n];
#pragma omp parallel for num_threads(numThreads)
    for (int i = n - 1; i >= 0; --i) {
        y[i] = b[i];
        for (int j = i + 1; j < n; ++j) {
            y[i] -= U[i * n + j] * y[j];
        }
        y[i] /= U[i * n + i];
    }
    return y;
}
int main{
 double* U = new double[n * n];
 double* x = new double[n];
 double* b = new double[n];
 double* ySeq = new double[n];
 double* yPar1 = new double[n];
 double* yPar2 = new double[n];
 double* yParMax = new double[n];
 for (int i = 0; i < n * n; i++) {
     U[i] = 0;
 }
 for (int i = 0; i < n; i++) {
     U[i * n + i] = 10;
     for (int j = i + 1; j < n; j++) {
         U[i * n + j] = 1;
     }
     x[i] = rand() % 11;
 }
yPar2 = solveUpperTriangularSystemParallel(U, b, n, 2);}
при матрице 100 на 100 начинает считать фигню то есть вот что она должна считать
Кликните здесь для просмотра всего текста
2 10 6 6 4 4 3 7 3 1 3 7 8 7 4 2 8 2 9 8 3 5 4 10 9 5 3 0 0 2 0 3 7 8 3 3 6 6 4 7 1 0 7 4 4 8 4 1 1 1 6 1 4 4 3 6 6 2 10 10 7 4 9 4 0 10 5 9 10 2 4 8 2 10 5 2 4 6 2 2 3 7 8 4 7 3 2 3 4 4 0 2 0 1 7 10 4 6 3 3 9 9 1 8 2 4 4 7 10 1 5 10 3 6 3 5 9 5 2 7 3 4 3 2 5 5 10 3 5 4 2 6 7 4 7 10 2 8 3 4 2 6 3 5 7 8 5 9 9 1 1 1 7 3 10 4 1 0 6 1 5 8 2 2 7 7 5 9 9 10 6 9 4 3 7 6 0 0 6 0 5 7 3 0 3 5 1 7 2 8 6 9 10 6 1 0 0 6 2 7 4 3 6 3 5 7 2 2 9 1 1 1 3 8 1 6 6 8 3 2 7 1 4 7 10 5 1 3 1 1 6 4 3 10 8 10 9 1 4 0 10 5 10 4 2 10 3 6 3 5 3 8 7 8 1 6 0 4 7 3 10 8 7 10 6 3 2 8 3 1 0 4 7 10 1 5 8 8 8 10 9 4 1 9 2 2 9 6 2 1 4 1 10 5 7 2 7 9 8 4 0 4 2 8 6 1 0 6 7 3 6 5 8 1 10 10 4 1 2 4 0 10 2 10 0 7 2 6 8 4 10 8 10 8 4 2 0 10 8 0 5 2 9 5 4 8 10 8 1 3 6 7 3 9 10 2 4 9 7 7 1 3 10 1 1 10 7 9 8 2 2 4 0 6 7 4 4 1 0 10 4 8 10 7 7 2 2 8 1 5 4 7 8 4 7 1 3 9 3 5 7 2 3 10 5 5 2 5 8 4 9 0 1 2 2 0 9 1 3 1 2 2 0 6 0 7 0 7 6 5 6 10 7 8 2 10 7 10 10 7 4 6 4 4 3 10 1 5 3 2 10 6 6 9 3 6 7 10 3 0 9 1 3 6 8 3 10 2 10 6 7 10 1 1 0 2 6 1 7 2 7 10 1 2 5 10 5 3 2 2 5 9 8 10 2 10 4 1 5 9 9 4 2 0 6 0 2 7 10 9 9 0 5 9 0 2 7 7 7 7 3 10 6 1 3 1 5 2 8 7 2 2 9 0 8 4 9 1 7 4 2 6 5 6 3 9 0 2 0 10 6 9 2 9 2 3 3 1 4 5 3 2 4 1 3 10 7 7 5 7 3 5 0 9 10 4 6 6 8 2 5 9 6 5 7 8 5 8 3 5 4 7 10 7 1 9 4 10 6 9 2 5 2 3 2 0 3 7 8 9 9 5 0 5 0 5 9 6 5 7 1 8 4 6 1 4 8 6 7 5 0 3 6 0 8 4 5 9 4 9 2 10 7 7 3 2 8 10 6 4 8 5 5 5 1 8 8 6 1 5 5 5 3 8 6 3 6 9 5 10 9 9 5 6 0 7 2 4 3 9 7 3 1 8 1 7 1 8 3 7 10 3 10 1 6 1 4 1 4 0 10 2 0 4 8 3 9 10 4 6 1 0 0 3 2 6 6 1 3 9 5 10 3 10 4 0 3 0 1 6 2 6 3 5 10 5 5 10 5 0 7 3 3 7 7 0 4 4 3 7 7 1 7 3 7 9 0 7 1 10 8 7 4 9 2 10 1 6 9 4 1 0 8 1 5 5 9 6 10 8 1 6 9 6 7 0 2 7 0 0 0 2 3 8 2 9 3 5 2 0 3 6 7 4 2 9 4 6 10 7 3 9 4 8 2 1 6 3 1 6 5 4 10 10 8 7 5 4 1 5 3 1 9 6 5 8 9 3 10 0 3 6 4 1 8 6 6 4 3 6 0 6 7 2 4 3 2 4 0 9 10 1 2 10 9 5 3 0 1 5 4 10 8 3 2 3 6 3 8 10 0 0 2 10 5 0 7 10 5 9 10 4 3 8 6 5 4 5 9 8 7 3 2 10 9 3 10 6 3 6 3 0 2 6 0 0 2 3 9 8 4 0 5 10 8 10 9 7 8 1 0 7 0 0 8 8 4 8 10 1 4 7 3 10 1 5 2 0 6 9 7 1 0 2 5 4 6 2 10 8 7 6 1 9 6 9 2 7 9 3 9 0 1 4 8 8 5 7 5 10 9 3 6 6 10 4 3 5 2 2 6 5 8 7 6 7 0 0 4 1

а такое выводит
Кликните здесь для просмотра всего текста
-5.15326e+55 -5.72411e+55 -6.3601e+55 -7.06696e+55 -7.85236e+55 -8.72589e+55 -9.69519e+55 -1.07718e+56 -1.1969e+56 -1.32985e+56 -1.47773e+56 -1.6419e+56 -1.82427e+56 -2.02694e+56 -2.25222e+56 -2.5024e+56 -2.78055e+56 -3.08934e+56 -3.43262e+56 -3.81402e+56 -4.23795e+56 -4.70881e+56 -5.23196e+56 -5.81335e+56 -6.4593e+56 -7.17689e+56 -7.97436e+56 -8.86034e+56 -9.84497e+56 -1.09388e+57 -1.21542e+57 -1.35048e+57 -1.50053e+57 -1.66724e+57 -1.85248e+57 -2.05832e+57 -2.28702e+57 -2.54113e+57 -2.82349e+57 -3.13721e+57 -3.48578e+57 -3.8731e+57 -4.30344e+57 -4.7816e+57 -5.3129e+57 -5.90321e+57 -6.55912e+57 -7.28792e+57 -8.09769e+57 -8.99744e+57 -9.99714e+57 -1.11079e+58 -1.23421e+58 -1.37135e+58 -1.52372e+58 -1.69302e+58 -1.88114e+58 -2.09015e+58 -2.32239e+58 -2.58044e+58 -2.86715e+58 -3.18573e+58 -3.53969e+58 -3.93299e+58 -4.36999e+58 -4.85555e+58 -5.39505e+58 -5.9945e+58 -6.66056e+58 -7.40062e+58 -8.22291e+58 -9.13657e+58 -1.01517e+59 -1.12797e+59 -1.2533e+59 -1.39256e+59 -1.54729e+59 -1.71921e+59 -1.91023e+59 -2.12248e+59 -2.35831e+59 -2.62034e+59 -2.91149e+59 -3.23499e+59 -3.59443e+59 -3.99382e+59 -4.43757e+59 -4.93064e+59 -5.47849e+59 -6.08721e+59 -6.76356e+59 -7.51507e+59 -8.35008e+59 -9.27786e+59 -1.03087e+60 -1.14542e+60 -1.27268e+60 -1.41409e+60 -1.57121e+60 -1.74579e+60 -1.93977e+60 -2.1553e+60 -2.39478e+60 -2.66087e+60 -2.95652e+60 -3.28502e+60 -3.65002e+60 -4.05558e+60 -4.5062e+60 -5.00689e+60 -5.56321e+60 -6.18134e+60 -6.86816e+60 -7.63129e+60 -8.47921e+60 -9.42134e+60 -1.04682e+61 -1.16313e+61 -1.29237e+61 -1.43596e+61 -1.59551e+61 -1.77279e+61 -1.96977e+61 -2.18863e+61 -2.43181e+61 -2.70201e+61 -3.00224e+61 -3.33582e+61 -3.70647e+61 -4.1183e+61 -4.57589e+61 -5.08432e+61 -5.64924e+61 -6.27693e+61 -6.97437e+61 -7.7493e+61 -8.61034e+61 -9.56704e+61 -1.063e+62 -1.18112e+62 -1.31235e+62 -1.45817e+62 -1.62019e+62 -1.80021e+62 -2.00023e+62 -2.22248e+62 -2.46942e+62 -2.7438e+62 -3.04867e+62 -3.38741e+62 -3.76379e+62 -4.18198e+62 -4.64665e+62 -5.16294e+62 -5.7366e+62 -6.374e+62 -7.08223e+62 -7.86914e+62 -8.74349e+62 -9.71499e+62 -1.07944e+63 -1.19938e+63 -1.33265e+63 -1.48072e+63 -1.64524e+63 -1.82805e+63 -2.03116e+63 -2.25685e+63 -2.50761e+63 -2.78623e+63 -3.09581e+63 -3.43979e+63 -3.82199e+63 -4.24666e+63 -4.71851e+63 -5.24279e+63 -5.82532e+63 -6.47258e+63 -7.19175e+63 -7.99083e+63 -8.87871e+63 -9.86523e+63 -1.09614e+64 -1.21793e+64 -1.35325e+64 -1.50362e+64 -1.67069e+64 -1.85632e+64 -2.06257e+64 -2.29175e+64 -2.54639e+64 -2.82932e+64 -3.14369e+64 -3.49299e+64 -3.8811e+64 -4.31233e+64 -4.79148e+64 -5.32386e+64 -5.9154e+64 -6.57267e+64 -7.30297e+64 -8.11441e+64 -9.01601e+64 -1.00178e+65 -1.11309e+65 -1.23676e+65 -1.37418e+65 -1.52687e+65 -1.69652e+65 -1.88502e+65 -2.09447e+65 -2.32719e+65 -2.58577e+65 -2.87307e+65 -3.1923e+65 -3.54701e+65 -3.94112e+65 -4.37902e+65 -4.86558e+65 -5.4062e+65 -6.00688e+65 -6.67432e+65 -7.41591e+65 -8.2399e+65 -9.15544e+65 -1.01727e+66 -1.1303e+66 -1.25589e+66 -1.39543e+66 -1.55048e+66 -1.72276e+66 -1.91418e+66 -2.12686e+66 -2.36318e+66 -2.62575e+66 -2.91751e+66 -3.24167e+66 -3.60186e+66 -4.00206e+66 -4.44674e+66 -4.94082e+66 -5.4898e+66 -6.09978e+66 -6.77753e+66 -7.53059e+66 -8.36732e+66 -9.29703e+66 -9.63253e+66 -9.30783e+66 -8.94705e+66 -9.24367e+66 -8.87576e+66 -9.16446e+66 -8.78775e+66 -9.06667e+66 -8.67909e+66 -8.24845e+66 -8.46745e+66 -8.01329e+66 -8.20617e+66 -7.72298e+66 -7.88359e+66 -7.36456e+66 -6.78786e+66 -6.84457e+66 -6.21009e+66 -6.9001e+66 -7.66678e+66 -7.82115e+66 -7.29518e+66 -7.40826e+66 -6.83642e+66 -7.59602e+66 -8.44002e+66 -9.3778e+66 -1.04198e+67 -1.01825e+67 -1.06164e+67 -1.10986e+67 -1.09367e+67 -1.14544e+67 -1.13322e+67 -1.18938e+67 -8.3329e+66 -8.56128e+66 -8.81504e+66 -8.3995e+66 -7.93779e+66 -8.12228e+66 -7.62977e+66 -7.08253e+66 -6.47449e+66 -6.49639e+66 -5.82322e+66 -5.77276e+66 -5.71668e+66 -6.35187e+66 -7.05763e+66 -7.84181e+66 -8.01563e+66 -8.20876e+66 -8.42335e+66 -7.9643e+66 -7.45423e+66 -6.88749e+66 -6.95528e+66 -6.3331e+66 -7.03678e+66 -7.81864e+66 -8.68738e+66 -9.65264e+66 -1.07252e+67 -1.19168e+67 -1.32409e+67 -1.47122e+67 -1.63468e+67 -1.81632e+67 -2.01813e+67 -2.24236e+67 -1.23603e+67 -1.30362e+67 -1.37871e+67 -1.3924e+67 -1.26304e+65 -1.40338e+65 -1.55931e+65 -1.73257e+65 -1.92508e+65 -2.13897e+65 -2.37664e+65 -2.64071e+65 -2.93412e+65 -3.26013e+65 -3.62237e+65 -4.02485e+65 -4.47206e+65 -4.96896e+65 -5.52106e+65 -6.13451e+65 -6.81613e+65 -7.57347e+65 -8.41497e+65 -9.34997e+65 -1.03889e+66 -1.15432e+66 -1.28257e+66 -1.42508e+66 -1.58343e+66 -1.75936e+66 -1.95485e+66 -1.47456e+66 -1.6384e+66 -1.82044e+66 -6.27727e+65 1.90642e+61 2.11824e+61 2.3536e+61 2.61511e+61 2.90568e+61 3.22853e+61 3.58726e+61 3.98584e+61 4.42871e+61 4.92079e+61 5.46755e+61 6.07505e+61 6.75006e+61 7.50006e+61 8.33341e+61 9.25934e+61 1.02882e+62 1.14313e+62 1.27014e+62 1.41127e+62 1.56808e+62 1.74231e+62 1.9359e+62 2.151e+62 2.39e+62 2.65555e+62 2.95061e+62 3.27846e+62 3.64273e+62 4.04748e+62 4.4972e+62 4.99689e+62 5.5521e+62 6.169e+62 6.85445e+62 7.61605e+62 8.46228e+62 9.40253e+62 1.04473e+63 1.16081e+63 1.28978e+63 1.43309e+63 1.59233e+63 1.76925e+63 1.96584e+63 2.18426e+63 2.42696e+63 2.69662e+63 2.99624e+63 3.32916e+63 3.69907e+63 4.11007e+63 4.56675e+63 5.07417e+63 5.63796e+63 6.2644e+63 6.96045e+63 7.73383e+63 8.59314e+63 9.54794e+63 1.06088e+64 1.17876e+64 1.30973e+64 1.45526e+64 1.61695e+64 1.79661e+64 1.99624e+64 2.21804e+64 2.46449e+64 2.73832e+64 3.04258e+64 3.38064e+64 3.75627e+64 4.17363e+64 4.63737e+64 5.15264e+64 5.72515e+64 6.36128e+64 7.06809e+64 7.85343e+64 8.72603e+64 9.69559e+64 1.07729e+65 1.19699e+65 1.32999e+65 1.47776e+65 1.64196e+65 1.8244e+65 2.02711e+65 2.25234e+65 2.5026e+65 2.78067e+65 3.08963e+65 3.43292e+65 3.81436e+65 4.23818e+65 4.70909e+65 5.23232e+65 5.81369e+65 6.45965e+65 7.17739e+65 7.97488e+65 8.86098e+65 9.84553e+65 1.09395e+66 1.2155e+66 1.35055e+66 1.50061e+66 1.66735e+66 1.85261e+66 2.05846e+66 2.28717e+66 2.5413e+66 2.82367e+66 3.13741e+66 3.48601e+66 3.87335e+66 4.30372e+66 4.78191e+66 5.31323e+66 5.90359e+66 6.55955e+66 7.28839e+66 8.09821e+66 8.99801e+66 9.99779e+66 1.11087e+67 1.23429e+67 1.37144e+67 1.52382e+67 1.69313e+67 1.88126e+67 2.09029e+67 2.32254e+67 2.5806e+67 2.86734e+67 3.18593e+67 3.53992e+67 3.93325e+67 4.37028e+67 4.85586e+67 5.3954e+67 5.99489e+67 6.66099e+67 7.4011e+67 8.22344e+67 9 4 2 0 6 0 2 7 10 9 9 0 5 9 0 2 7 7 7 7 3 10 6 1 3 1 5 2 8 7 2 2 9 0 8 4 9 1 7 4 2 6 5 6 3 9 0 2 0 10 6 9 2 9 2 3 3 1 4 5 3 2 4 1 3 10 7 7 5 7 3 5 0 9 10 4 6 6 8 2 5 9 6 5 7 8 5 8 3 5 4 7 10 7 1 9 4 10 6 9 2 5 2 3 2 0 3 7 8 9 9 5 0 5 0 5 9 6 5 7 1 8 4 6 1 4 8 6 7 5 0 3 6 0 8 4 5 9 4 9 2 10 7 7 3 2 8 10 6 4 8 5 5 5 1 8 8 6 1 5 5 5 3 8 6 3 6 9 5 10 9 9 5 6 0 7 2 4 3 9 7 3 1 8 1 7 1 8 3 7 10 3 10 1 6 1 4 1 4 0 10 2 0 4 8 3 9 10 4 6 1 0 0 3 2 6 6 1 3 9 5 10 3 10 4 0 3 0 1 6 2 6 3 5 10 5 5 10 5 0 7 3 3 7 7 0 4 4 3 7 7 1 7 3 7 9 0 7 1 10 8 7 4 9 2 10 1 6 9 4 1 0 8 1 5 5 9 6 10 8 1 6 9 6 7 0 2 7 0 0 0 2 3 8 2 9 3 5 2 0 3 6 7 4 2 9 4 6 10 7 3 9 4 8 2 1 6 3 1 6 5 4 10 10 8 7 5 4 1 5 3 1 9 6 5 8 9 3 10 0 3 6 4 1 8 6 6 4 3 6 0 6 7 2 4 3 2 4 0 9 10 1 2 10 9 5 3 0 1 5 4 10 8 3 2 3 6 3 8 10 0 0 2 10 5 0 7 10 5 9 10 4 3 8 6 5 4 5 9 8 7 3 2 10 9 3 10 6 3 6 3 0 2 6 0 0 2 3 9 8 4 0 5 10 8 10 9 7 8 1 0 7 0 0 8 8 4 8 10 1 4 7 3 10 1 5 2 0 6 9 7 1 0 2 5 4 6 2 10 8 7 6 1 9 6 9 2 7 9 3 9 0 1 4 8 8 5 7 5 10 9 3 6 6 10 4 3 5 2 2 6 5 8 7 6 7 0 0 4 1


Добавлено через 17 минут
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
double vectorNorm(const double* v, int n) {
    double sum = 0.0;
    for (int i = 0; i < n; ++i) {
        sum += v[i] * v[i];
    }
    return sqrt(sum);
}
double* solveUpperTriangularSystemParallel(const double* U, const double* b, int n, int numThreads) {
    double* y = new double[n];
#pragma omp parallel for num_threads(numThreads)
    for (int i = n - 1; i >= 0; --i) {
        y[i] = b[i];
        for (int j = i + 1; j < n; ++j) {
            y[i] -= U[i * n + j] * y[j];
        }
        y[i] /= U[i * n + i];
    }
    return y;
}
int main(){   
srand(time(0));
ofstream outputFile("result.txt");
 int n;
 n = 1000;
 double* U = new double[n * n];
 double* x = new double[n];
 double* b = new double[n];    
 double* yPar2 = new double[n];
        clock_t startPar2 = clock();
        yPar2 = solveUpperTriangularSystemParallel(U, b, n, 2);
        clock_t endPar2 = clock();
        double durationPar2 = double(endPar2 - startPar2) / CLOCKS_PER_SEC*1000;
        double normPar2 = vectorNorm(yPar2, n);
 
        outputFile << endl << "Компоненты вектора y ( 2):" << endl;
        for (int i = 0; i < n; ++i) {
            outputFile << yPar2[i] << " ";
        }
        delete[] yPar2;
 
 
        double* yParMax = new double[n];
        int numThreads = omp_get_max_threads();
        clock_t startParMax = clock();
        yParMax = solveUpperTriangularSystemParallel(U, b, n, numThreads);
        clock_t endParMax = clock();
        double durationParMax = double(endParMax - startParMax) / CLOCKS_PER_SEC*1000;
        double normParMax = vectorNorm(yParMax, n);
        outputFile << endl << "Компоненты вектора y (макс):" << endl;
        for (int i = 0; i < n; ++i) {
            outputFile << yParMax[i] << " ";
        }
        delete[] yParMax;}

вот полный код

Добавлено через 40 минут
при этом на другом пк где 8 ядер все работает хорошо , а где 4 нет
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2024, 14:55
Ответы с готовыми решениями:

Паралельное вычисление минимального значения двух массивов
Выполнить паралельное вычисление минимального значения для двух массивов. Вывести результат через MessageBox/. Добавлено через 29...

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных.
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

Переопределение QSqlQueryModel и паралельное использование делегата в одном QTableWidget
Добрый день! Есть QTableView, в которую попадает модель checkboxVtableModel, наследованная от QSqlQueryModel, и есть делегат...

11
 Аватар для Pphantom
2327 / 1570 / 722
Регистрация: 17.03.2022
Сообщений: 5,075
19.09.2024, 23:38
Лучший ответ Сообщение было отмечено Pphantom как решение

Решение

Указанная директива означает, что разные итерации цикла по i вы пытаетесь считать параллельно. При этом в них меняются значения y[i], которые используются при вычислении (внутренний цикл по j и y[j] в нем). При параллельном выполнении они в каждой итерации еще не вычислены, так что в итоге получается чушь.

Проще говоря, реализуемый алгоритм в этом месте просто не параллелится, он принципиально последовательный. Надо алгоритм менять или хорошо думать, какие его части допускают параллельное выполнение, а какие - нет.

Потом на это еще наложатся проблемы с неуказанием области видимости переменных (какие из них pivate, какие shared и т.п.), но это уже проблема следующего порядка.
2
0 / 0 / 0
Регистрация: 15.12.2022
Сообщений: 137
20.09.2024, 07:54  [ТС]
Pphantom, а из за чего на пк с 8 ядрами все работает нормально , а где 4 нет ?
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
20.09.2024, 08:30
ffdfdsdfsf, потому что повезло на 8 ядрах и проблема замаскировалась, а на 4-х - нет.
Там же явно не только количеством ядер отличается, но и архитектурой явно, раз столь разные количества ядер.
(чисто теоретически может даже случиться так, что на 8-ми ядерном по какой-то эвристике все считается в 1 потоке, т.к. распараллеливание, по мнению компилятора, только замедлит, оно же тоже не бесплатное; просто как гипотеза)

Проблемы параллельности они такие: могут проявляться, а могут и нет, потому они и есть проблемы.
2
 Аватар для Pphantom
2327 / 1570 / 722
Регистрация: 17.03.2022
Сообщений: 5,075
20.09.2024, 19:40
Цитата Сообщение от ffdfdsdfsf Посмотреть сообщение
а из за чего на пк с 8 ядрами все работает нормально , а где 4 нет ?
Повезло. Для параллельных вычислений это в общем-то норма: при разной конфигурации системы, разных условиях и прочих различиях код может выполниться так, как предполагал его автор, а может - нет. KSergey9 в общем-то об этом уже написал.

Отсюда, кстати, полезный при отладке параллельного кода рецепт: даже если при однократном запуске все сработало правильно, стоит запустить программу несколько раз, по возможности - в разных условиях. Если в ней есть ошибки, то весьма вероятен вариант, когда результаты разных запусков будут различаться. Отсутствие разнообразия, конечно, не гарантия правильности, но наличие - гарантия того, что код некорректен.
1
0 / 0 / 0
Регистрация: 15.12.2022
Сообщений: 137
20.09.2024, 20:37  [ТС]
Понял спасибо
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
20.09.2024, 21:32
Цитата Сообщение от Pphantom Посмотреть сообщение
Повезло. Для параллельных вычислений это в общем-то норма: при разной конфигурации системы, разных условиях и прочих различиях код может выполниться так, как предполагал его автор, а может - нет
Это ещё что за фантастика ?
Нарываешься на батл ?
Код всегда будет выполняться так как задумано и так как он написан.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
21.09.2024, 07:10
Цитата Сообщение от SmallEvil Посмотреть сообщение
Код всегда будет выполняться так как задумано
Нет.

Цитата Сообщение от SmallEvil Посмотреть сообщение
так как он написан.
Да.
0
21.09.2024, 09:19

Не по теме:

KSergey9, 'если правильно написан, значит будет работать как задумано.
Тонкая грань, есть такое, в попытках новичков это особенно заметно.

0
21.09.2024, 09:29

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
если правильно написан, значит будет работать как задумано.
Если всё делать правильно - то всё будет правильно.
Только толку-то от такого рассуждения. Оно не отвечает ни на один вопрос: ни как сделать правильно, ни является ли то, что я наваял - правильным.

Цитата Сообщение от SmallEvil Посмотреть сообщение
в попытках новичков это особенно заметно.
Не согласен. Про новичков особенно.
Поведение коммерческого софта и кодовая база Open Source, а также падающие самолёты и космические корабли, красноречиво подтверждают моё несогласие и иллюстрируют его (несогласия) причины.

0
21.09.2024, 13:12

Не по теме:

KSergey9,
мда, а я то вдруг решил что здравомыслящий человек, но увы ...

0
21.09.2024, 14:42

Не по теме:

Цитата Сообщение от SmallEvil Посмотреть сообщение
а я то вдруг решил что здравомыслящий человек, но увы ...
Никак не пойму-с кому вы изволите отказывать в здравомыслии-с.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2024, 14:42
Помогаю со студенческими работами здесь

Паралельное вычисление минимального значения для двух массивов
Выполнить паралельное вычисление минимального значения для двух массивов. Вывести результат через MessageBox Добавлено через 18 минут ...

Паралельное воспроизведение
На куче кнопок есть код воспроизведения звука в зависимости от радиобатона (Если что то делаю пианино) if (radioButton1.Checked == true) ...

Паралельное нажатие клавишь
Задача такая сделать прогу в которой будет что-то происходить, но я смогу нажимать клавиши и выходить к примеру в меню там или вызывать...

Паралельное выполнение процессов
Добрый день! Подскажите пожалуйста: Есть два потока и есть какой то объект, как сделать так, что бы если один поток занят работой с...

паралельное сканирование штрихкодов
Есть 5 USB штрихкод-сканеров, используя операционную систему Debian, возможно считывать штрихкоды с 3 сканеров пралельно. если пытаться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru