Задание, данное работникам MPI, распараллелено - PullRequest
0 голосов
/ 26 сентября 2019

Я использую MPI для своего кода C ++ для распараллеливания function1, который сам вызывается несколько раз в цикле.Внутри этой функции большинство распределенных задач занимают одинаковое время вычислений, за исключением одной «большой» задачи, которую я буду называть taskL в следующем.К сожалению, это taskL в основном последнее задание в моем function1.Для решения taskL я включил библиотеку Fortran, которая сама распараллеливается внутри.Таким образом, когда я выполняю свою программу параллельно, первая часть function1 становится быстрее, а моя taskL решается медленнее, поскольку каждый работник решает taskL теперь только на одном ядре.В целом это делает всю программу еще медленнее.

Мой подход к решению этой проблемы состоял в том, чтобы вызывать функцию решения taskL только от корневого работника, но она все еще не использует ЦП, предоставленный ведомым.

Итак, у меня есть два вопроса:

  1. Есть ли способ «сообщить» MPI, что root может использовать мощность ЦП ведомых устройств?
  2. ИлиЕсть другой подход к решению этой проблемы (или эта проблема просто не подходит для использования MPI)?

Надеюсь, я смог объяснить проблему понятным способом.

...