Я полагаю, что это было сформулировано так, чтобы позволить реализациям MPI, которые порождают его ранги в пределах MPI_Init
.Это означает, что технически гарантировано, что не все ранги существуют до MPI_Init
.Если бы вы открыли файловые дескрипторы или выполнили другие действия с побочными эффектами на состояние процесса, это превратилось бы в огромный беспорядок.
На самом деле ни одна из основных реализаций MPI этого не делает, тем не менее реализация MPI может использовать это требование для другихтрюки.
РЕДАКТИРОВАТЬ: Я не нашел никаких доказательств этого и только помню это из далекого прошлого, поэтому я не уверен в этом.Я не могу найти формулировку в стандарте MPI, которую вы цитировали из MPICH.Однако стандарт MPI регулирует, какие функции MPI вы можете вызывать до MPI_Init
:
Единственными функциями MPI, которые могут быть вызваны до вызова процедур инициализации MPI, являются MPI_GET_VERSION, MPI_GET_LIBRARY_VERSION, MPI_INITIALIZED, MPI_FINALIZED
, и любая функция спрефикс MPI_T_
.