implicit real*8(a-h,o-z)
include 'fnx.h'
integer i,j,k
real*8 x,y,z,dclock ,bytes
integer xarr(1024*512)
integer*8 offset
integer max_writes ,req_size
max_writes=10
req_size = size(xarr)*4
if(mynode()==0)then
print *, "req_size=",req_size
endif
open(unit=8,
& file='/pfs_grande/multi/tmp_1/pfay/f90/tmpb',
& form='unformatted',
& access='sequential',status='unknown')
call gsync()
offset = mynode()*req_size
x=dclock()
do i=1,max_writes
j = iwriteoff(8,offset,xarr,req_size)
k = iowait(j)
offset = offset + req_size*numnodes()
enddo
call gsync()
bytes = max_writes*numnodes()*req_size
x=dclock() - x
y = bytes/(1024.0*1024.0)/x
close(unit=8)
if(mynode()==0)print *,"iwriteoff() ran at MB/sec=",y
open(unit=8,
& file='/pfs_grande/multi/tmp_1/pfay/f90/tmpb',
& form='unformatted',
& access='sequential',status='unknown')
call gsync()
offset = mynode()*req_size
x=dclock()
do i=1,max_writes
j = ireadoff(8,offset,xarr,req_size)
k = iowait(j)
offset = offset + req_size*numnodes()
enddo
call gsync()
bytes = max_writes*numnodes()*req_size
x=dclock() - x
y = bytes/(1024.0*1024.0)/x
close(unit=8)
if(mynode()==0)print *,"ireadoff() ran at MB/sec=",y
call exit
end
Acknowledgement and Disclaimer