0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 32
|
||||||
1 | ||||||
Распараллеливание09.12.2021, 22:12. Показов 958. Ответов 10
Метки нет (Все метки)
Помогите найти ошибку. Разный ответ при 1 и 4 потоках.
0
|
09.12.2021, 22:12 | |
Ответы с готовыми решениями:
10
Распараллеливание распараллеливание Распараллеливание Распараллеливание вычислений |
7790 / 6557 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
09.12.2021, 22:20 | 2 |
Почему именно это число? Ты же случайные берёшь.
0
|
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 32
|
|
10.12.2021, 00:52 [ТС] | 3 |
Число берётся с решения двойного интеграл sqrt(4-x*x-y*y)dxdy где х и у от 0 до 1
0
|
7790 / 6557 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
10.12.2021, 01:13 | 4 |
Может, дело в обращении к distr()? Пробовал с std::thread то же самое сделать?
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
||||||
13.12.2021, 15:54 | 5 | |||||
1. reduction(+:V1) и
V1 = V / n , это не правильно. В цикле считаем V , по не муже делаем редукцию, и только после параллельной секции надо делить.2. У тебя distr и gener - общие ресурсы для нескольких протоков. Так нельзя. Нужно для каждого OMP потока завести свои.
0
|
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 32
|
||||||
15.12.2021, 15:51 [ТС] | 6 | |||||
Не совсем понял, должно выглядеть как-то так?
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
||||||
16.12.2021, 15:21 | 7 | |||||
Anyeple, Следующие рекомендации:
0
|
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 32
|
|
16.12.2021, 18:04 [ТС] | 8 |
Зачем вы тут умножаете на 64? Ответ должен быть схож с интегралом sqrt(4-x*x-y*y)dxdy, где х и у от 0 до 1.
Я нахожу объем фигуры х2+у2+z2=4 на квадрате [0,1]x[0,1], т.е. (x * x + y * y + z * z <= 4.0) &&(x <= 0.0 || x >= 0.1) && (y <= 0.0 || y >= 0.1).
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
|
18.12.2021, 23:04 | 9 |
Совершенно не верное утверждение.
Что было у тебя в коде: * Берутся случайные точки из куба [-2;2]x[-2;2]x[-2;2] и проверяются на условие (x * x + y * y + z * z <= 4.0) &&(x <= 0.0 || x >= 0.1) && (y <= 0.0 || y >= 0.1) . Т.е. точка должна попасть в шар радиуса 2 и у неё , . Это явно не то, что ты ищешь.или Если вам надо найти Массив: Вычислить объем фигуры, ограниченной поверхностью х2+у2+z2=4 то возьмите точку из [0;1]x[0;1]x[0;2] и проверьте что она попала в шар.
0
|
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 32
|
|
19.12.2021, 18:26 [ТС] | 10 |
т.е. то что в коде и то что в задании не как не связанно -.- Спасибо за разъяснение.
Как понял это условие (x * x + y * y + z * z <= 4.0) &&(x <= 0.0 || x >= 0.1) && (y <= 0.0 || y >= 0.1) с фигурой которую надо найти не как не связанно. На рисунке попытался изобразить верхнюю часть того что надо.
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
|
19.12.2021, 20:51 | 11 |
Anyeple, А в чём проблема? Берёте область для случайных точек [0;1]x[0;1]x[0;2] и проверяете что попали в шар. Исправить код не должно быть затруднений.
0
|
19.12.2021, 20:51 | |
19.12.2021, 20:51 | |
Помогаю со студенческими работами здесь
11
Странное распараллеливание Распараллеливание вычислений Распараллеливание программы Распараллеливание циклов Распараллеливание цикла Распараллеливание циклов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |