2013-09-19 7 views
2

Я пытаюсь решить уравнение Пуассона в реальном пространстве на архитектуре с несколькими GPU, используя код в C/CUDA с библиотекой MPI. На данный момент меня интересует только проблема в периодической коробке. Но в будущем я, возможно, захочу посмотреть на сферическую геометрию.Решение уравнения Пуассона на нескольких графических процессорах, расположенных на разных узлах кластера, взаимодействующих по протоколу MPI

Существует ли существующая процедура для решения этой проблемы? Комментарии, датированные августом 2012 года, как представляется, указывают на то, что библиотека тяги не адаптирована для архитектуры нескольких графических процессоров. Это все еще правильно?

Если существует обычная процедура, какой метод она использует (Якоби, СОР, Гаусс-Зейдел, Крылов)? Просьба высказать свое мнение о своей скорости и проблемах, с которыми вы столкнулись.

Спасибо за ваше время.

+1

Это очень широкий вопрос и не очень хорошо изучен. «Multi-GPU» и MPI - полностью ортогональные концепции. Не имеет значения, работает ли Thrust (или любой другой код GPU) с поддержкой нескольких GPU или нет, когда вы работаете с MPI в настройках распределенной памяти. – talonmies

ответ

1

Решение уравнения Пуассона с помощью подхода с несколькими GPU с использованием графических процессоров, расположенных на разных узлах кластера, взаимодействующих с использованием протокола MPI, является относительно недавней исследовательской темой. Основная идея заключается в использовании декомпозиции домена, так что каждый GPU решает одну часть вычислительной области, а MPI используется для обмена граничными данными.

Возможно, вы захотите ознакомиться с документами Towards a multi-GPU solver for the three-dimensional two-phase incompressible Navier-Stokes equations, представленными на GTC 2012 и An MPI-CUDA Implementation for Massively Parallel Incompressible Flow Computations on Multi-GPU Clusters. В частности, в первом подходе уравнения Навье-Стокса решаются проекционным подходом Хорина, который, в свою очередь, требует решения уравнения Пуассона, которое является наиболее сложной задачей и решается стратегией MultiGPU/MPI, использующей предопределенный сопряженный градиентный алгоритм Якоби.

Что касается доступных процедур, в прошлом я столкнулся с GAMER, загружаемым программным обеспечением для приложений в области астрофизики. Авторы утверждают, что код содержит множество ускорителей Poisson с GPU-ускорением и гибридную распараллеливание OpenMP/MPI/GPU. Однако у меня никогда не было возможности загрузить его.

1

Thrust может использоваться в среде с несколькими GPU. Вы можете использовать runtime api i.e. cudaSetDevice для переключения устройств. Поскольку упорные рукоятки распределяют и освобождают выделение для векторов неявно, необходимо следить за тем, чтобы правильное устройство было выбрано, когда объявлены векторы устройств и когда они освобождены, то есть выйдут из области видимости.

Смежные вопросы