Версия стандарта MPI 3.0 формально удалила интерфейс C ++ (ранее он был устаревшим). Хотя реализации все еще могут поддерживать его, новые функции в MPI-3 не имеют интерфейса C ++, определенного в стандарте MPI. См. Http://blogs.cisco.com/performance/the-mpi-c-bindings-what-happened-and-why/ для получения дополнительной информации.
Мотивация для удаления интерфейса C ++ из MPI заключалась в том, что он не имел существенного значения по сравнению с интерфейсом C. Было очень мало различий, кроме «s / _ / :: / g», и многие функции, к которым привыкли пользователи C ++, не использовались (например, автоматическое определение типа с помощью шаблонов).
Как человек, который участвует в форуме MPI и работает с рядом проектов C ++, в которых реализован собственный интерфейс C ++ для функций MPI C, я хотел бы знать, каковы желательные особенности интерфейса C ++ для MPI. Несмотря на то, что я ни к чему не привержен, мне было бы интересно увидеть реализацию автономного интерфейса MPI C ++, который отвечает потребностям многих пользователей.
И да, я знаком с Boost :: MPI ( http://www.boost.org/doc/libs/1_54_0/doc/html/mpi.html ), но он поддерживает только функции MPI-1, и модель сериализации будет крайне сложно поддерживать RMA.
Один интерфейс C ++ к MPI, который мне нравится, это Elemental ( https://github.com/poulson/Elemental/blob/master/src/core/imports/mpi.cpp ), так что, возможно, люди могут предоставить некоторые за и против, что подходить. В частности, я думаю, что MpiMap решает существенную проблему.