[MPI] Loop Statement
반복문은 프로그래밍에서 자주 쓰이는 명령문 중 하나입니다. 오늘은 반복문을 MPI에서 병렬화 하는 방법에 대해서 다룹니다. MPI에는 병렬 반복문이 없지만, 프로세서 ID를 이용하면 간단하게 병령화 할 수 있습니다. 이를 위해서, MPI_COMM_RANK를 통해서 식별 가능하도록 프로세서 ID를 각각의 프로세서에 지정해줍니다. 이후 반복문을 다음과 같이 설정해 주면 병렬화가 가능합니다. program main use mpi integer :: ierr ! error signal variable. Standard value = 0 integer :: rank ! the process ID/NUMBER integer :: nprocs ! number of processes call MPI_INIT(ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) do i = rank + 1, 11, nprocs print *, i, rank end do end program main 프로세서의 수가 4개인 컴퓨터에서 실행시키면 각각 2~3개의 프린트 명령어를 수행 할 것입니다. 순서는 지켜지지 않으며, 컴파일하고 실행시키면 다음과 같은 결과물을 얻을 수 있습니다. >>mpif90 mpitest.f90 >>mpiexec mpitest.exe 1 0 5 0 9 0 2 1 3 2 4 3 8 3 7 2 11 2 6 1