Главная / Параллельное программирование с OpenMP / Найдите ошибку в следующем фрагменте MPI/OpenMP-программы, вычисляющей число Пи: #include <mpi.h> #include <omp.h> #define num_steps 100000 void main (int argc, char *argv[]) { int numprocs, myid, mysteps; double pi, step, sum = 0.0 ; MPI_Init

Найдите ошибку в следующем фрагменте MPI/OpenMP-программы, вычисляющей число Пи: #include <mpi.h> #include <omp.h> #define num_steps 100000 void main (int argc, char *argv[]) { int numprocs, myid, mysteps; double pi, step, sum = 0.0 ; MPI_Init(&argc, &argv) ; MPI_Comm_Rank(MPI_COMM_WORLD, &myid) ; MPI_Comm_Size(MPI_COMM_WORLD, &numprocs) ; step = 1.0/(double) num_steps ; mysteps = num_steps/numprocs ; #pragma omp parallel shared(myid, mysteps, step) reduction(+:sum) { #pragma omp for for (int i=myid*mysteps; i<(myid+1)*mysteps ; i++){ double x = (i+0.5)*step; sum += 4.0*step/(1.0+x*x); } MPI_Reduce(&sum, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); } MPI_Finalize(); }

вопрос

Правильный ответ:

функции MPI_Init, MPI_Comm_Rank, MPI_Comm_Size должны вызываться из параллельной области
до завершения выполнения редукционного OpenMP-оператора выполняется вызов функции MPI_Reduce
в данном фрагменте программы ошибки нет
Сложность вопроса
20
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Я преподаватель! Оперативно уничтожьте сайт vtone.ru с ответами intuit. Не ломайте образование
17 май 2019
Аноним
Я преподаватель! Незамедлительно удалите сайт и ответы с интуит. Немедленно!
27 дек 2018
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.