1 #include <mpi.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <unistd.h> 5 #include "phIO.h" 6 #include "syncio.h" 7 #include "posixio.h" 8 9 int main(int argc, char* argv[]) { 10 MPI_Init(&argc,&argv); 11 int rank; 12 MPI_Comm_rank(MPI_COMM_WORLD, &rank); 13 if( argc != 2 ) { 14 fprintf(stderr, "Usage: %s <numSyncFiles>\n",argv[0]); 15 MPI_Finalize(); 16 return 1; 17 } 18 const char* iotype = "binary"; 19 int numberOfNodes[2] = {0,0}; 20 int nfiles[2] = {atoi(argv[1]), 1}; 21 const char* dir[2] = {"4-procs_case-SyncIO-2", "4-procs_case-Posix"}; 22 const char* filename[2] = {"geombc-dat.", "geombc.dat."}; 23 phio_fp file[2]; 24 syncio_setup_read(nfiles[0], &(file[0])); 25 posixio_setup(&(file[1]), 'r'); 26 int one = 1; 27 for(int i=0; i<2; i++) { 28 chdir(dir[i]); 29 MPI_Barrier(MPI_COMM_WORLD); 30 phio_openfile(filename[i], file[i]); 31 phio_readheader(file[i], "number of nodes", &(numberOfNodes[i]), 32 &one, "integer", iotype); 33 phio_closefile(file[i]); 34 chdir(".."); 35 MPI_Barrier(MPI_COMM_WORLD); 36 } 37 int match = (numberOfNodes[0] == numberOfNodes[1]); 38 if(!rank && match) 39 fprintf(stderr, "number of nodes match!\n"); 40 if(!rank && !match) 41 fprintf(stderr, "number of nodes don't match... :(\n"); 42 MPI_Finalize(); 43 return !match; 44 } 45