@@ -15,52 +15,33 @@ rank = MPI.Comm_rank(comm)
1515sz = MPI. Comm_size (comm)
1616filename = MPI. bcast (tempname (), 0 , comm)
1717
18- # Write
1918MPI. Barrier (comm)
2019
21- f = MPI . File . open (comm, filename, write= true )
22- MPI. File. set_view! (f, 0 , MPI . Datatype (Int64), MPI . Datatype (Int64) )
23- MPI. File. write_at (f, rank * 2 , ArrayType ([ Int64 (rank + 1 ) for i = 1 : 2 ] ))
24- close (f )
20+ # Collective write
21+ fh = MPI. File. open (comm, filename, read = true , write = true , create = true )
22+ MPI. File. set_view! (fh, 0 , MPI . Datatype ( Int64), MPI . Datatype (Int64 ))
23+ MPI . File . write_at_all (fh, rank * 2 , ArrayType ([ Int64 (rank + 1 ) for i = 1 : 2 ]) )
2524
26- MPI. Barrier (comm)
27-
28- if rank == 0
29- @test read! (filename, zeros (Int64, (2 ,sz))) == [j for i = 1 : 2 , j= 1 : sz]
30- end
31-
32- MPI. Barrier (comm)
33-
34- f = MPI. File. open (comm, filename, write= true )
35- MPI. File. set_view! (f, 0 , MPI. Datatype (Int64), MPI. Datatype (Int64))
36- MPI. File. write_at_all (f, rank* 2 , ArrayType ([Int64 (rank+ 1 ) for i = 1 : 2 ]))
37- close (f)
38-
39- MPI. Barrier (comm)
25+ MPI. File. sync (fh)
4026
27+ # Noncollective read
4128if rank == 0
42- @test read! (filename, zeros (Int64, (2 ,sz))) == [j for i = 1 : 2 , j= 1 : sz]
29+ data = zeros (Int64, (2 ,sz))
30+ MPI. File. read_at! (fh, 0 , data)
31+ @test data == [j for i = 1 : 2 , j= 1 : sz]
4332end
4433
34+ MPI. File. sync (fh)
4535MPI. Barrier (comm)
4636
47- # Read
48- if rank == 0
49- write (filename, [Float64 (j) for i = 1 : 3 , j = 1 : sz])
37+ if rank == sz- 1
38+ MPI. File. write_at (fh, 0 , ArrayType ([Int64 (- 1 ) for i = 1 : 2 ]))
5039end
5140
52- MPI. Barrier (comm)
53-
54-
55- f = MPI. File. open (comm, filename, read= true )
56- MPI. File. set_view! (f, 0 , MPI. Datatype (Float64), MPI. Datatype (Float64))
57-
58- data = ArrayType (zeros (Float64, 3 ))
59- MPI. File. read_at! (f, rank* 3 , data)
60- @test data == Float64[rank+ 1 for i = 1 : 3 ]
61-
62- MPI. Barrier (comm)
41+ MPI. File. sync (fh)
6342
64- data = ArrayType (zeros (Float64, 3 ))
65- MPI. File. read_at_all! (f, rank* 3 , data)
66- @test data == Float64[rank+ 1 for i = 1 : 3 ]
43+ # Collective read
44+ data = zeros (Int64, 1 )
45+ MPI. File. read_at_all! (fh, rank* 2 , data)
46+ @test data == [rank == 0 ? - 1 : rank+ 1 ]
47+ close (fh)
0 commit comments