?CentOS?????Fortran?MPI(Message Passing Interface)?????????????????????:
1. ??MPI?
??,????CentOS?????MPI?????MPI????MPICH?OpenMPI??????MPICH???:
??MPICH
-
?????MPICH:
wget http://www.mpich.org/static/downloads/3.2/mpich-3.2.1.tar.gz tar -xzvf mpich-3.2.1.tar.gz -C /home/mpiuser/mpich/ cd /home/mpiuser/mpich/mpich-3.2.1/
-
?????:
./configure --prefix=/home/mpiuser/mpich make && make install
-
??????: ??
~/.bashrc
??,??????:export PATH=/home/mpiuser/mpich/bin:$PATH export LD_LIBRARY_PATH=/home/mpiuser/mpich/lib:$LD_LIBRARY_PATH
???????????:
source ~/.bashrc
2. ??Fortran??
??Fortran???(?gfortran?ifort)??MPI???????????????:
program hello_world_mpi use mpi implicit none integer :: process_rank, size_of_cluster, ierror call mpi_init(ierror) call mpi_comm_size(mpi_comm_world, size_of_cluster, ierror) call mpi_comm_rank(mpi_comm_world, process_rank, ierror) print *, 'Hello world from process:', process_rank call mpi_finalize(ierror) end program hello_world_mpi
3. ??MPI??
??mpirun
?mpiexec
?????????????:
mpirun -np./hello_world_mpi
????mpiexec
:
mpiexec -np./hello_world_mpi
4. ???????
???????,????????:
-
??????: ??
/etc/hosts
??,??????????ping?? -
??SSH?????: ????????SSH??,????????????
ssh-keygen -t rsa ssh-copy-id mpiuser@other_node
5. ???????
???????mpirun
?mpiexec
??,??????:
mpirun -np-host node1,node2,node3 ./hello_world_mpi
????
??????,????CentOS???????Fortran?MPI,??????????