Как я могу передавать данные между несколькими независимо запущенными программами, используя MPI

Я новичок в MPI. Я нахожусь в процессе чтения учебника на mpitutorial.com. К сожалению, примеры не относятся к тому типу связи / общения, в который я хочу вникнуть. Я хочу установить следующее:

Я хочу иметь одну центральную программу MPI, к которой могут подключаться другие программы, которые были запущены независимо. Центральная программа MPI берет на себя роль, аналогичную роли оператора распределительного щита и распределительного щита 1960 года. Это означает, что подключенные программы принимают и отправляют данные из центральной программы MPI и в нее. Единственным исключением из аналогии является то, что центральная программа MPI изменяет данные, которые она получила, перед отправкой.

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

Может ли кто-нибудь объяснить мне, как я могу установить такое соединение, используя MPI, или указать правильное направление, указав, какие концепции MPI мне следует тщательно изучить?

1 ответ

То, что вы хотите, безусловно, выполнимо с MPI, и в стандарте MPI есть целая глава, посвященная программам, которые следуют модели клиент / сервер.

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

Другие вопросы по тегам