Расчет пи с использованием Монте-Карло и MPI_Reduce - PullRequest
1 голос
/ 15 февраля 2012

Я работаю над проектом, где нам нужно распараллелить эту проблему с помощью MPI.Таким образом, основная идея заключается в том, что каждый процесс получит свою долю очков, проведет тест (находятся ли точки в круге), а затем вызовет MPI_Reduce.Корень получит уменьшенный результат и представит окончательный ответ.

Что меня смущает, так это то, что нужно уменьшить.Должен ли каждый процесс вычислять число пи, вызывать уменьшение вместе с числом пи, а корень просто взять среднее значение уменьшенного значения числа пи?или должен ли каждый вызов процесса уменьшаться с количеством попаданий (успешных точек внутри круга), а затем корень вычисляет число пи, используя этот результат?Надеюсь, это было ясно.Спасибо.

1 Ответ

2 голосов
/ 15 февраля 2012

Я бы определенно сделал последнее: пусть каждый процесс возвращает количество попаданий, а корневая функция рассчитывает число пи, используя эти результаты.Таким образом, вы выполняете тот же процесс, что и при последовательном вычислении.

...