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(MPI_CO | o***i 发帖数: 603 | 2 感觉逻辑有问题吧,死锁了?
用MPI_Test测试一下exchange完成了没?
【在 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 non-blocking ISEND and IRECV也会死锁么?我试试改掉3 | m*****7 发帖数: 67 | 4 tag必须一样才能收到
现在只有rank1能收到是因为:tag2初始值是0,
rank0发给rank1的msg tag也是0,
所以碰巧match上了
这个程序就是想测试一下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)
cal
【在 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 | 5 谢谢!right on the point!
【在 m*****7 的大作中提到】 : tag必须一样才能收到 : 现在只有rank1能收到是因为:tag2初始值是0, : rank0发给rank1的msg tag也是0, : 所以碰巧match上了 : : 这个程序就是想测试一下ISEND和IRECV。启动四个线程,每个把一个数字发到rank+1的 : 下一个thread上,最后一个rank为3的发回到rank=0的线程,用WAIT_ALL等待,然后把 : 结果打印出来,已经编译成功,发现四个线程也都启动,但却不能通讯。测试条件为 : quad-core, linux, openMP : 程序:
|
|