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