/*
*/
#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