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

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

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

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

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

1

Решение

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

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

1

Другие решения


По вопросам рекламы [email protected]