/*

*/
#include <stdio.h>
#include <errno.h>
#include <nx.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

#define FILNM "/pfs/pfay/tmp/tmp####"
#define FILNM "/pfs_grande/multi/tmp_1/pfay/tmpb/tmp####"
#define MAX_WRITES 10
#define BUF_SIZE (2*1024*1024)
char buf[BUF_SIZE];
char vbuf[BUF_SIZE];

int main(int argc, char **argv)
{
     FILE *f;
     void *dum, *dum1;
     int status,i,fd,j;
      double x,y,bytes;
     int max_writes=MAX_WRITES;
     if(mynode()==0){
        printf("run on %d nodes with req_size= %d\n",
         numnodes(),sizeof(buf));
     }

   for(j=0;j < 2; j++)
   {
     f = fopen(FILNM,"w");
     if(j==1){setvbuf(f,vbuf,_IOFBF,BUF_SIZE);}
     bytes=0;
     gsync();
     x = dclock();
     for(i=0;i<max_writes;i++)
     {
        fwrite(buf,sizeof(buf),1,f);
        bytes+=sizeof(buf);
     }
     gsync();
     y = dclock() - x;
     x = numnodes()*bytes/(1024.0*1024.0)/y;
     fclose(f);
     if(mynode()==0)
     {printf("fwrite() with%s setvbuf runs at %f MB/sec\n",(j==1?"":"out"),x);}

     f = fopen(FILNM,"r");
     if(j==1){setvbuf(f,vbuf,_IOFBF,BUF_SIZE);}
     bytes=0;
     gsync();
     x = dclock();
     for(i=0;i<max_writes;i++)
     {
        fread(buf,sizeof(buf),1,f);
        bytes+=sizeof(buf);
     }
     gsync();
     y = dclock() - x;
     x = numnodes()*bytes/(1024.0*1024.0)/y;
     fclose(f);
     if(mynode()==0)
     {printf("fread() with%s setvbuf runs at %f MB/sec\n",(j==1?"":"out"),x);}
  }
   return 0;
}



Acknowledgement and Disclaimer