mpirun及MPI_Init
Hello是個mpi-aware的平行程式,當在單一主機上執行指令:
mpirun -np 4 ./Hello
會出現下現訊息:
It seems that [at least] one of the processes that was started with mpirun did not invoke MPI_INIT before quitting (it is possible that more than one process did not invoke MPI_INIT -- mpirun was only notified of the first one, which was on node n0).
亦即MPI_Init只會被head-node來invoke一次,之後就由head-node來派送task,到不同的worker-nodes上。
mpirun can *only* be used with MPI programs (i.e., programs that invoke MPI_INIT and MPI_FINALIZE). You can use the "lamexec" program to run non-MPI programs over the lambooted nodes.
如果使用lamexec來執行mpi-aware的程式,就沒有問題。