mpi_bcast
должен быть вызван всеми процессами в коммуникаторе, и все они должны встретить вызов в той же точке кода. Когда вы написали свой (псевдо) код, корневой процесс делает вызов для трансляции, который не выполняются рабочими процессами, а рабочие процессы вызывают вызов, который нет в корне.
mpi_bcast
является одной из подпрограмм MPI collect , библиотека позаботится о том, чтобы определить правильный шаблон отправки сообщений на основе аргументов, которые вы передаете ему. В случае mpi_bcast
4-й аргумент является идентификатором источника широковещательной передачи (он не обязательно должен быть корневым процессом коммуникатора, хотя он часто бывает); все остальные процессы в коммуникаторе будут приемниками.