c**********w 发帖数: 1746 | 1 这个程序就是想测试一下ISEND和IRECV。启动四个线程,每个把一个数字发到rank+1的
下一个thread上,最后一个rank为3的发回到rank=0的线程,用WAIT_ALL等待,然后把
结果打印出来,已经编译成功,发现四个线程也都启动,但却不能通讯。测试条件为
quad-core, linux, openMP
程序:
program hello
USE mpi
integer rank, size, ierror, status(MPI_STATUS_SIZE)
integer dest,tag, ierr,tag2, req(2), src
REAL*8 res, msg, ans,sout
integer status_array(MPI_STATUS_SIZE,2)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(M | N***m 发帖数: 4460 | 2 do you need something like these?
ierr=MPI_Wait(&send_request,&status);
ierr=MPI_Wait(&recv_request,&status);
【在 c**********w 的大作中提到】 : 这个程序就是想测试一下ISEND和IRECV。启动四个线程,每个把一个数字发到rank+1的 : 下一个thread上,最后一个rank为3的发回到rank=0的线程,用WAIT_ALL等待,然后把 : 结果打印出来,已经编译成功,发现四个线程也都启动,但却不能通讯。测试条件为 : quad-core, linux, openMP : 程序: : program hello : USE mpi : integer rank, size, ierror, status(MPI_STATUS_SIZE) : integer dest,tag, ierr,tag2, req(2), src : REAL*8 res, msg, ans,sout
| c**********w 发帖数: 1746 | 3 搞定了,IRECV那个tag改成MPI_ANY_TAG即可 |
|