Вы можете легко запустить «настоящее» приложение MPI с помощью одного процесса. На практике это работает даже без использования mpiexec / mpirun, хотя я не уверен, что это официально поддерживается. Тем не менее, полная и подтверждающая «последовательная» реализация MPI с 1 процессом, вероятно, станет довольно сложной и имеет свою собственную библиотеку - так что в таком случае, почему бы просто не использовать настоящую полную реализацию MPI?
Надеюсь, вы видите круг, который я пытаюсь нарисовать:
Если вам нужно полное поведение MPI, просто используйте реализацию MPI - независимо от того, ограничено ли это только одним процессом.
На практике приложения, которые хотят иметь возможность работать с MPI или без него, часто используют свои собственные абстракции MPI, используя специфичные для домена обертки связи, #ifdef HAVE_MPI или более сложные макросы.