From ff70cf089d158e894b4a0161045f06d34dbf67e2 Mon Sep 17 00:00:00 2001 From: degomme Date: Fri, 19 Apr 2019 10:32:24 +0200 Subject: [PATCH] fix io-shared (remove spurious ordered_read) and do write then read. --- teshsuite/smpi/io-shared/io-shared.c | 41 ++++++------- teshsuite/smpi/io-shared/io-shared.tesh | 81 ++++++++++--------------- 2 files changed, 51 insertions(+), 71 deletions(-) diff --git a/teshsuite/smpi/io-shared/io-shared.c b/teshsuite/smpi/io-shared/io-shared.c index b18e5a6b9a..e4b90d2598 100644 --- a/teshsuite/smpi/io-shared/io-shared.c +++ b/teshsuite/smpi/io-shared/io-shared.c @@ -11,7 +11,6 @@ int main( int argc, char *argv[] ) int errs = 0; int size; int rank; - int i; int* buf; int count; MPI_File fh; @@ -21,29 +20,35 @@ int main( int argc, char *argv[] ) MPI_Init( &argc, &argv ); comm = MPI_COMM_WORLD; - MPI_File_open( comm, (char*)"/scratch/lib/libsimgrid.so.3.6.2", MPI_MODE_RDWR | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh ); + MPI_File_open( comm, (char*)"/scratch/testfile", MPI_MODE_RDWR | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE, MPI_INFO_NULL, &fh ); MPI_Comm_size( comm, &size ); MPI_Comm_rank( comm, &rank ); - buf = (int *)malloc( 10+size * sizeof(int) ); + buf = (int *)malloc( sizeof(int) ); buf[0] = rank; - + + MPI_File_seek_shared( fh, 0, MPI_SEEK_SET ); + MPI_Barrier(comm); + + memset( &status, 0xff, sizeof(MPI_Status) ); + MPI_File_write_shared( fh, buf, 1, MPI_INT, &status ); + MPI_Get_count( &status, MPI_INT, &count ); + if (count != 1) { + errs++; + fprintf( stderr, "Count not one (%d) on write\n", count );fflush(stderr); + } + /* Write nothing (check status) */ memset( &status, 0xff, sizeof(MPI_Status) ); - MPI_File_write( fh, buf, 0, MPI_INT, &status ); + MPI_File_write_shared( fh, buf, 0, MPI_INT, &status ); MPI_Get_count( &status, MPI_INT, &count ); if (count != 0) { errs++; fprintf( stderr, "Count not zero (%d) on write\n", count );fflush(stderr); } - - MPI_Barrier( comm ); - MPI_File_seek_shared( fh, 0, MPI_SEEK_SET ); - for (i=0; i [rank 1] -> carl > [rank 2] -> bob > [rank 3] -> carl -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 80 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 40 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 120 -> (3@carl) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 40 bytes read, readsize 40 bytes, movesize 40 -> (3@carl) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 160 -> (1@carl) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 40 bytes read, readsize 40 bytes, movesize 40 -> (1@carl) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 80 -> (2@bob) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 40 bytes read, readsize 40 bytes, movesize 40 -> (2@bob) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 120 -> (0@bob) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 40 bytes read, readsize 40 bytes, movesize 40 -> (0@bob) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 40 -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (0@bob) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes read, readsize 4 bytes, movesize 4 -> (0@bob) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 4 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes read, readsize 4 bytes, movesize 4 -> (2@bob) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 4 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 4 -> (3@carl) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes read, readsize 4 bytes, movesize 4 -> (3@carl) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 8 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 8 -> (1@carl) Read in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes read, readsize 4 bytes, movesize 4 -> (1@carl) Position after read in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 12 -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (0@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (0@bob) Write in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes written, readsize 4 bytes, movesize 4 -> (0@bob) Position after write in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 4 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 0 -> (2@bob) Write in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes written, readsize 4 bytes, movesize 4 -> (2@bob) Position after write in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 4 -> (3@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 4 -> (3@carl) Write in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes written, readsize 4 bytes, movesize 4 -> (3@carl) Position after write in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 8 -> (1@carl) Seeking in MPI_File /scratch/lib/libsimgrid.so.3.6.2, setting offset 8 -> (1@carl) Write in MPI_File /scratch/lib/libsimgrid.so.3.6.2, 4 bytes written, readsize 4 bytes, movesize 4 -> (1@carl) Position after write in MPI_File /scratch/lib/libsimgrid.so.3.6.2 : 12 +> (0@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (2@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (3@carl) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (1@carl) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (0@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (0@bob) Write in MPI_File /scratch/testfile, 4 bytes written, readsize 4 bytes, movesize 4 +> (0@bob) Position after write in MPI_File /scratch/testfile : 4 +> (2@bob) Seeking in MPI_File /scratch/testfile, setting offset 4 +> (2@bob) Write in MPI_File /scratch/testfile, 4 bytes written, readsize 4 bytes, movesize 4 +> (2@bob) Position after write in MPI_File /scratch/testfile : 8 +> (3@carl) Seeking in MPI_File /scratch/testfile, setting offset 8 +> (3@carl) Write in MPI_File /scratch/testfile, 4 bytes written, readsize 4 bytes, movesize 4 +> (3@carl) Position after write in MPI_File /scratch/testfile : 12 +> (1@carl) Seeking in MPI_File /scratch/testfile, setting offset 12 +> (1@carl) Write in MPI_File /scratch/testfile, 4 bytes written, readsize 4 bytes, movesize 4 +> (1@carl) Position after write in MPI_File /scratch/testfile : 16 +> (0@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (2@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (3@carl) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (1@carl) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (0@bob) Seeking in MPI_File /scratch/testfile, setting offset 0 +> (0@bob) Read in MPI_File /scratch/testfile, 4 bytes read, readsize 4 bytes, movesize 4 +> (0@bob) Position after read in MPI_File /scratch/testfile : 4 +> (2@bob) Seeking in MPI_File /scratch/testfile, setting offset 4 +> (2@bob) Read in MPI_File /scratch/testfile, 4 bytes read, readsize 4 bytes, movesize 4 +> (2@bob) Position after read in MPI_File /scratch/testfile : 8 +> (3@carl) Seeking in MPI_File /scratch/testfile, setting offset 8 +> (3@carl) Read in MPI_File /scratch/testfile, 4 bytes read, readsize 4 bytes, movesize 4 +> (3@carl) Position after read in MPI_File /scratch/testfile : 12 +> (1@carl) Seeking in MPI_File /scratch/testfile, setting offset 12 +> (1@carl) Read in MPI_File /scratch/testfile, 4 bytes read, readsize 4 bytes, movesize 4 +> (1@carl) Position after read in MPI_File /scratch/testfile : 16 + -- 2.20.1