Производительность программы вычисления интеграла можно значительно повысить. Например, пусть программа выполняется на восьми процессорах.
Все процессы начинают выполнять программу практически одновременно.
Однако после выполнения основных задач (вызовы
MPI_Init(),
MPI_Comm_size() и MPI_Comm_rank()) процессы
1 - 7 будут простаивать, в то время как процесс 0 будет собирать входные
данные. После того как процесс 0 примет входные данные, процессы
большего ранга должны продолжать ожидать, пока процесс 0 рассылает
входные данные всем процессам. Подобная неэффективность наблюдается
и в конце программы, когда процесс 0 собирает и суммирует значения
локальных интегралов.
Основной задачей организации параллельной обработки является равномерное распределение загрузки по всем процессорам системы. Если, как в приведенном случае, основная нагрузка ложится на один из процессов, то в некоторых случаях будет эффективнее использовать однопроцессорную версию.