@@ -25,14 +25,27 @@ sreq = MPI.Isend(send_mesg, dst, rank+32, comm)
2525stats = MPI. Waitall! ([sreq, rreq])
2626@test isequal (typeof (rreq), typeof (MPI. REQUEST_NULL))
2727@test isequal (typeof (sreq), typeof (MPI. REQUEST_NULL))
28-
2928@test MPI. Get_source (stats[2 ]) == src
3029@test MPI. Get_tag (stats[2 ]) == src+ 32
3130@test isapprox (norm (recv_mesg- recv_mesg_expected), 0.0 )
3231
33- (done,stats) = MPI. Testall! ([sreq, rreq])
32+ (done, stats) = MPI. Testall! ([sreq, rreq])
3433@test done
34+ rreq = nothing
35+ sreq = nothing
36+ gc ()
3537
38+ if rank == 0
39+ MPI. send (send_mesg, dst, rank+ 32 , comm)
40+ recv_mesg = recv_mesg_expected
41+ elseif rank == size- 1
42+ (recv_mesg, _) = MPI. recv (src, src+ 32 , comm)
43+ else
44+ (recv_mesg, _) = MPI. recv (src, src+ 32 , comm)
45+ MPI. send (send_mesg, dst, rank+ 32 , comm)
46+ end
47+
48+ @test isapprox (norm (recv_mesg- recv_mesg_expected), 0.0 )
3649
3750rreq = nothing
3851sreq = nothing
4861 MPI. send (send_mesg, dst, rank+ 32 , comm)
4962end
5063
51- @test isapprox (norm (recv_mesg- recv_mesg_expected), 0.0 )
64+ send_mesg = Float64 (rank)
65+ recv_mesg = Array (Float64, N)
66+ recv_mesg_expected = Array (Float64, N)
67+
68+ fill! (recv_mesg_expected, Float64 (src))
69+
70+ rreq = nothing
71+ sreq = nothing
72+ gc ()
73+
74+ send_mesg = Float64 (rank)
75+ recv_mesg = Array (Float64, N)
76+ recv_mesg_expected = Array (Float64, N)
77+
78+ fill! (recv_mesg_expected, Float64 (src))
79+
80+ if rank == 0
81+ MPI. Send (send_mesg, dst, rank+ 32 , comm)
82+ recv_mesg = recv_mesg_expected
83+ elseif rank == size- 1
84+ (recv_mesg, _) = MPI. Recv (Float64,src, src+ 32 , comm)
85+ else
86+ (recv_mesg, _) = MPI. Recv (Float64,src, src+ 32 , comm)
87+ MPI. Send (send_mesg, dst, rank+ 32 , comm)
88+ end
89+
90+ rreq = nothing
91+ sreq = nothing
92+ gc ()
93+
94+ recv_mesg = Array (Float64, N)
95+ rreq = MPI. Irecv! (recv_mesg, src, src+ 32 , comm)
96+ sreq = MPI. Isend (send_mesg, dst, rank+ 32 , comm)
97+
98+ (inds, stats) = MPI. Waitsome! ([sreq, rreq])
99+ req_arr = [sreq,rreq]
100+ for i in inds
101+ (done, status) = MPI. Test! ( req_arr[i] )
102+ @test done
103+ end
104+
105+ rreq = nothing
106+ sreq = nothing
107+ gc ()
52108
53109MPI. Finalize ()
0 commit comments