2014-11-04 3 views
3

MPI standard 3 был выпущен в 2011 году без привязок C++! мой вопрос в том, как программировать распределенные вычисления на C++ без MPI (обратите внимание, что нам также нужен OpenMP CUDA Openacc) есть альтернатива MPI в C++ (не MPI 2.2, повышение MPI)? - это MPI, построенный на TCP/IP, поэтому я могу создать свой собственный способ, используя TCP/IP в C++?C++ MPI standard 3

есть ли связывание с открытым кодом для MPI 3 для C++?

или просто вы должны придерживаться C GTK + CUDA OpenMP OpenGL MPI 3

что, если вы хотите C++ QT CUDA OpenMP OpenGL + распределенных вычислений API?

Ubuntu и многие дистрибутивы Linux стремятся заменить Xserver Wayland, а MIR будут писать специальные API и уровень для создания контекста для рабочего стола OpenGL для замены GLX, а GTK + будет иметь интеграцию MIR Wayland, поэтому на Linux, если что-то изменит некоторые люди и группы попытаться исправить это попытаться разработать новое решение

но MPI 3 C++ связывании я не найти решение к нему

+7

Вы знаете, C API можно использовать отлично с C++ ... – Deduplicator

+0

Как заявил @Deduplicator, API C API можно использовать отлично. На самом деле это то, что используют Boost и друзья. –

+3

API C++ был исключен из MPI-3, поскольку он не дает реального преимущества над связями C, вместо этого является простым оберточным слоем. Кодирование пользователей MPI на C++ рекомендуется использовать Boost.MPI, который предлагает реальный объектно-ориентированный интерфейс и поддерживает такие вещи, как сериализация классов, чтобы объекты могли быть отправлены непосредственно в виде сообщений. –

ответ

3

официальная рекомендация заключается в использовании привязок C, по причинам, указанным в комментариях. Единственная потеря функциональности здесь относится к исключениям, и вы не пропустите ее, потому что никакая реализация не была отказоустойчивой в эпоху MPI-2 в любом случае.

Boost :: MPI хорош, но поддерживает очень мало функций (самых популярных).

Рекомендуется использовать ваши собственные C++-обертки. Elemental (libelemental.org) имеет хороший набор, который делает магию с типом вывода.

У меня есть личная заинтересованность в разработке нового набора привязок C++, но у меня не было времени для достижения прогресса. Есть статья StackExchange Computational Science с подробным обсуждением, на которое вы могли бы внести свой вклад.

+0

Вы имеете в виду написать собственный код mpi .c и вызвать его из внутри моего кода на C++, как писать приложение Python и писать код узкого места в c, и все это изнутри Python да, это идеальное решение, но как насчет компиляции и связывания mpi c C++, для этого требуется много экспериментов и практики. Спасибо за ваш ответ. –