flops.hpf
来自「shpf 1.9一个并行编译器」· HPF 代码 · 共 52 行
HPF
52 行
SUBROUTINE FLOPS(IO,NC,TSTEPS,RCUT,TIME, MX, MY, MZ)
IMPLICIT NONE
INTEGER IO, NC, NTOT, TSTEPS
DOUBLE PRECISION RCUT
DOUBLE PRECISION TIME
INTEGER MX, MY, MZ
INTEGER MULT, MXRED, MYRED, MZRED, NCMARK
DOUBLE PRECISION FCOUNT, FORCE1, FORCE2, FORCE3
DOUBLE PRECISION PIRED, SIMBEN, BENCH
PARAMETER(PIRED = 88/21)
NTOT = 4*NC*NC*NC
MULT = MX * MY * MZ
MXRED = MX - 2
MYRED = MY - 2
MZRED = MZ - 2
NCMARK = NTOT/MULT
FORCE1 = (PIRED*MULT*RCUT**3)/27
FORCE2 = (8+4*(MXRED+MYRED+MZRED)+
1 2*(MXRED*MYRED+MXRED*MZRED+MYRED*MZRED))/MULT
FORCE3 = (FORCE1*5*13*NCMARK*MXRED*MYRED*MZRED)/MULT
FCOUNT = 30*NTOT+13.5*NTOT*NCMARK*((9+35*FORCE1)*
1 (FORCE2+1)+5*FORCE1*FORCE3)
BENCH=TSTEPS*FCOUNT/TIME/1E6
SIMBEN=0.03*TSTEPS/TIME
WRITE(IO,*)
WRITE(IO,*)'CALCULATION FINISHED.'
WRITE(IO,*)
WRITE(IO,*)'Data type - DOUBLE PRECISION'
WRITE(IO,*)'TOTAL NUMBER OF NOMINAL FLOPS = ',INT(FCOUNT),' flop'
WRITE(IO,*)'NUMBER OF TIME-STEPS = ',TSTEPS,' tstep'
WRITE(IO,*)
WRITE(IO,*)'********************************************'
WRITE(IO,*)
WRITE(IO,'( 4(A, F10.3, A/))')
* 'ELAPSED TIME =',TIME,' s' ,
* 'TEMPORAL PERFORMANCE =',TSTEPS/TIME,' tstep/s',
* 'SIMULATION PERFORMANCE =',SIMBEN,' sim-ps/s',
* 'BENCHMARK PERFORMANCE =',BENCH,' Mflop/s'
WRITE(IO,*)
WRITE(IO,*)'********************************************'
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?