1f1d1f61eSPranav Subramanian #include <mpi.h> 2f1d1f61eSPranav Subramanian #include <stdio.h> 3f1d1f61eSPranav Subramanian #include <stdlib.h> 4f1d1f61eSPranav Subramanian #include <unistd.h> 5f1d1f61eSPranav Subramanian #include <cassert> 6f1d1f61eSPranav Subramanian #include "phiostats.h" 7f1d1f61eSPranav Subramanian #include "phIO.h" 8f1d1f61eSPranav Subramanian #include "phstream.h" //for makeRStream and makeGRStream 9f1d1f61eSPranav Subramanian #include "syncio.h" 10f1d1f61eSPranav Subramanian #include "posixio.h" 11f1d1f61eSPranav Subramanian #include "streamio.h" 12f1d1f61eSPranav Subramanian 13f1d1f61eSPranav Subramanian int main(int argc, char* argv[]) { 14f1d1f61eSPranav Subramanian MPI_Init(&argc,&argv); 15f1d1f61eSPranav Subramanian int rank; 16f1d1f61eSPranav Subramanian MPI_Comm_rank(MPI_COMM_WORLD, &rank); 17f1d1f61eSPranav Subramanian int size; 18f1d1f61eSPranav Subramanian MPI_Comm_size(MPI_COMM_WORLD, &size); 19f1d1f61eSPranav Subramanian if( argc != 2 ) { 20f1d1f61eSPranav Subramanian fprintf(stderr, "Usage: %s <numSyncFiles>\n",argv[0]); 21f1d1f61eSPranav Subramanian MPI_Finalize(); 22f1d1f61eSPranav Subramanian return 1; 23f1d1f61eSPranav Subramanian } 24f1d1f61eSPranav Subramanian const char* phrase = "number of fishes"; 25f1d1f61eSPranav Subramanian const char* type = "double"; 26f1d1f61eSPranav Subramanian const char* iotype = "binary"; 27f1d1f61eSPranav Subramanian int zero = 0; 28f1d1f61eSPranav Subramanian int one = 1; 29f1d1f61eSPranav Subramanian int numFish = 0; 30f1d1f61eSPranav Subramanian double fishWeight = 1.23; 310a242d7cSPranav Subramanian int nfiles = 1; 32f1d1f61eSPranav Subramanian int ppf = size/nfiles; 33f1d1f61eSPranav Subramanian const char* filename[2] = {"water-dat.", "water.dat."}; 34f1d1f61eSPranav Subramanian rstream rs = makeRStream(); 35f1d1f61eSPranav Subramanian phio_fp file[3]; 36f1d1f61eSPranav Subramanian const char* modes[3]={"syncio", "posixio", "streamio"}; 37f1d1f61eSPranav Subramanian syncio_setup_write(nfiles, one, ppf, &(file[0])); 38f1d1f61eSPranav Subramanian posixio_setup(&(file[1]), 'w'); 39f1d1f61eSPranav Subramanian streamio_setup_r(&(file[2]), rs, 'w'); 403964a29aSPranav Subramanian fprintf(stderr, "%s\n" ,"Outside loop 1.0"); 41f1d1f61eSPranav Subramanian for(int i=0; i<3; i++) { 423964a29aSPranav Subramanian fprintf(stderr, "%s\n" ,"Within the i loop"); 43f1d1f61eSPranav Subramanian if(!rank) fprintf(stderr, "%s\n", modes[i]); 443964a29aSPranav Subramanian fprintf(stderr, "%s\n" ,"Before phastaio"); 45f1d1f61eSPranav Subramanian phastaio_initStats(); 463964a29aSPranav Subramanian fprintf(stderr, "%s\n" ,"Opening files with ", filename[i], file[i] ); 47f1d1f61eSPranav Subramanian phio_openfile(filename[i], file[i]); 483964a29aSPranav Subramanian fprintf(stderr, "%s\n" ,"Entering for loop for ", atoi(argv[1]) ); 493964a29aSPranav Subramanian // const char* str = "Number of times "+ nfiles ; 50*de79a544SPranav Subramanian for (int j = 0; j < 2 ; j++) { 513964a29aSPranav Subramanian fprintf(stderr,"%s\n", "Inside loop"); 528cad8781SPranav Subramanian //fprintf(stderr,"%d\n",atoi(argv[1])); 533964a29aSPranav Subramanian const char* str = "Number of times " +j; 543964a29aSPranav Subramanian fprintf(stderr,"%s\n", "Writing the header time - " ); 55*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the int zero"); 563964a29aSPranav Subramanian fprintf(stderr,"%d\n",zero); 57*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the int one"); 583964a29aSPranav Subramanian fprintf(stderr,"%d\n",one); 59*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the file[i]"); 603964a29aSPranav Subramanian fprintf(stderr,"%s\n",file[i] ); 613964a29aSPranav Subramanian fprintf(stderr,"%s\n","Should have printed the file" ); 62*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the const char type, this is set to double"); 633964a29aSPranav Subramanian fprintf(stderr,"%s\n",type); 64*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the const char iotype, this is set to binary"); 653964a29aSPranav Subramanian fprintf(stderr,"%s\n",iotype); 663964a29aSPranav Subramanian fprintf(stderr,"%s\n","Opening the file" ); 673964a29aSPranav Subramanian phio_writeheader(file[i], str, &zero, &one, &zero, type, iotype); 68*de79a544SPranav Subramanian fprintf(stderr,"%s\n","Printing the created string after writing the header "); 693964a29aSPranav Subramanian fprintf(stderr,"%s\n",str ); 708cad8781SPranav Subramanian fprintf(stderr,"%s\n","Printing the loop number" ); 713964a29aSPranav Subramanian fprintf(stderr,"%d\n",j ); 723964a29aSPranav Subramanian fprintf(stderr,"%s\n", "Writing the data block time - "); 738cad8781SPranav Subramanian // fprintf(stderr,"%d\n",j ); 743964a29aSPranav Subramanian phio_writedatablock(file[i], str, &fishWeight, &zero, type, iotype); 758cad8781SPranav Subramanian fprintf(stderr,"%s\n","Printing the file[i] after writing the data block" ); 768cad8781SPranav Subramanian fprintf(stderr,"%s\n",file[i] ); 778cad8781SPranav Subramanian fprintf(stderr,"%s\n","Printing the string that has been created " ); 788cad8781SPranav Subramanian fprintf(stderr,"%s\n",str ); 790a242d7cSPranav Subramanian } 80f1d1f61eSPranav Subramanian phio_closefile(file[i]); 81f1d1f61eSPranav Subramanian phastaio_printStats(); 82f1d1f61eSPranav Subramanian } 83f1d1f61eSPranav Subramanian syncio_setup_read(nfiles, &(file[0])); 84f1d1f61eSPranav Subramanian posixio_setup(&(file[1]), 'r'); 85f1d1f61eSPranav Subramanian streamio_setup_r(&(file[2]), rs, 'r'); 86f1d1f61eSPranav Subramanian for(int i=0; i<3; i++) { 87f1d1f61eSPranav Subramanian if(!rank) fprintf(stderr, "%s\n", modes[i]); 88f1d1f61eSPranav Subramanian phastaio_initStats(); 89f1d1f61eSPranav Subramanian phio_openfile(filename[i], file[i]); 903964a29aSPranav Subramanian //Str was added 913964a29aSPranav Subramanian // const char* str = "Number of times "+ nfiles ; 923964a29aSPranav Subramanian // for (int j = 0; j < nfiles ; j++) { 93f1d1f61eSPranav Subramanian phio_readheader(file[i], phrase, &numFish, &one, type, iotype); 943964a29aSPranav Subramanian // phio_readheader(file[i], str, &numFish, &one, type, iotype); 953964a29aSPranav Subramanian //Changing argument from file[i] to file[j] 96f1d1f61eSPranav Subramanian assert(!numFish); 97f1d1f61eSPranav Subramanian phio_readdatablock(file[i], phrase, &fishWeight, &numFish, type, iotype); 983964a29aSPranav Subramanian // phio_readdatablock(file[i], str, &fishWeight, &numFish, type, iotype); 99f1d1f61eSPranav Subramanian assert(fishWeight == 1.23); 100f1d1f61eSPranav Subramanian phio_closefile(file[i]); 101f1d1f61eSPranav Subramanian phastaio_printStats(); 102f1d1f61eSPranav Subramanian } 103f1d1f61eSPranav Subramanian MPI_Finalize(); 104f1d1f61eSPranav Subramanian return 0; 105f1d1f61eSPranav Subramanian } 106