在Fortran中的MPI_开头函数都常有一个整数型的错误变量用以函数返回错误信息。如: call MPI_Barrier(MPI_COMM_WORLD,ierr) 在没有ierr参数时,程序可能会出项access violation出现。
这里MPI_BARRIER是进程同步。就是说,哪个进程先执行到这一句的话,就等一下其他的进程。 这个就类似于春游的时候,大家都差不多玩完一个项目了,然后去玩下一个项目之前,老师一般都会让先集合一下。 programmainimplicit noneinclude'mpif.h'character*(MPI_MAX_PROCESSOR_NAME)processor_nameintegermyid,numprocs,name...
MASTER =0IF(ICORE.EQ.MASTER)WRITE(6,'(I3,"-CORES ASSIGNED")') NCORECALLMPI_BARRIER(MPI_COMM_WORLD,IERR)C INPUT DATA 单个进程为各自的部分赋值DOI =1,10ICE =MOD(I,NCORE)IF(ICE.EQ.ICORE) A(I)=1.0*IENDDOC COMMUNICATION 进程通讯,以同步变量DO1J =1,10ICE =MOD(J,NCORE)IF(ICE.EQ.IC...
call mpi_barrier( mpi_comm_world, ierr ) ! 同步进程 ! | | ! | + --- 返回代码(out) ! + --- 通信域(in) end if call mpi_finalize( ierr ) ! 完成 MPI程序 的结束工作 end program 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21...
call mpi_barrier( mpi_comm_world, ierr ) ! 同步进程 ! | | ! | + --- 返回代码(out) ! + --- 通信域(in) end if call mpi_finalize( ierr ) ! 完成 MPI程序 的结束工作 end program 代码6 ! 简单的 MPI 并行程序 Fortran 实现示例! ! -- by Jackdaw ! -- QQ 群 Fortran Coder(23380...
call mpi_abort( mpi_comm_world, 1, ierr ) end if call mpi_get_processor_name( p_name, nameLen, ierr ) ! 获取运行当前进程的机器名 write(*,*) "Processor ",myid," is alive on ",p_name(1:nameLen),"." call sleep(1) call mpi_barrier( mpi_comm_world, ierr ) call hello() ...
MPI_SCATTERV、MPI_GATHERV 60 4.3 MPI_PACK、UNPACK、BARRIER、WTIME 62 4.3.1 MPI_PACK、MPI_UNPACK 62 4.3.2 MPI_BARRIER、MPI_WTIME 65 4.4 資料切割的并行程式T4DCP 67 第五章 多維陣列的并行程式 72 5.1多維陣列的循序程式 T5SEQ 73 5.2多維陣列資料不切割的并行程式T5CP 76 5.3多維陣列末維資料切割...
MPI_SCATTERV、MPI_GATHERV604.3 MPI_PACK、UNPACK、BARRIER、WTIME624.3.1 MPI_PACK、MPI_UNPACK624.3.2 MPI_BARRIER、MPI_WTIME654.4 資料切割的并行程式 T4DCP67第五章 多維陣列的并行程式725.1 多維陣列的循序程式 T5SEQ735.2 多維陣列資料不切割的并行程式 T5CP765.3 多維陣列末維資料切割的并行程式 T5DCP855. ...
CALL MPI_Barrier(MPI_COMM_WORLD, ierr) IF (world_rank .EQ. 0) THEN ALLOCATE (crr1_all(world_size)) ALLOCATE (crr2_all(world_size)) END IF crr1_all = CMPLX(0.0d0, 0.0d0) crr2_all = CMPLX(0.0d0, 0.0d0) CALL MPI_Gather(crr1, 1, MPI_double_complex, crr1_all, 1, MPI_...
CALL MPI_COMM_SIZE(MPI_COMM_WORLD,NCORE,IERR) CALL MPI_BARRIER(MPI_COMM_WORLD,IERR) c step-01 loop output core number print*,"---This is the first assignment---" do 1 i = 1,3 icyes = MOD(i,3) if(icyes.eq.icore) then write(*,'(...