Я использую MPI при очень простом вычислении PI с использованием численного интегрирования, используя некоторые математические правила, в конце концов, я преобразую вычисление в суммирование, где он имеет этот формат:Используя MPI для простого расчета, разные количества процессов получают разные результаты?
PI = Σ (f (i)) , где i начинается с 1 до 100000, а f (i) - это функция, возвращающая некоторое значение двойного типа на основе i.
Совершенно очевидно, что при программировании я могу преобразовать сумму в цикл for, повторяя 100000 раз. И с MPI, использующим p-процессоры, я разделяю цикл for на p-сегменты, каждый процессор получает 100000/p циклов (предположим, 100000% p = 0). И позже, используя MPI_Reduce, MPI_SUM, чтобы собрать эти суб-результаты и суммировать их, чтобы получить окончательные результаты.
Однако, когда я использую разные количества процессов, конечные результаты будут немного отличаться, мой конечный результат PI имеет 12-битную точность, и результаты начинают отличаться после 7-го бита.
Я не могу получить ответ, почему результат будет другим, поскольку, на мой взгляд, он просто выполняет точно такие же задачи, как и распределение задач.
Любая помощь будет оценена очень!
Я думаю, что ваш вопрос обрезался – pyCthon
Извините, я только что отредактировал мой вопрос. – Bpache
Можете ли вы показать свой код? – tune2fs