/mobile Handheld Friendly website
Ubuntu : Intel® Q6600® one core |
Each table row shows performance measurements for this Fortran Intel program with a particular command-line input value N.
| N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
|---|---|---|---|---|---|
| 1,000 | 0.20 | 0.20 | ? | 813 | 0% 0% 5% 100% |
| 4,000 | 3.09 | 3.10 | 16,092 | 813 | 1% 0% 1% 100% |
| 16,000 | Bad Output | 813 |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read mandelbrot benchmark to see what this program should do.
Intel(R) Fortran Compiler XE for applications running on IA-32, Version 13.0.1.117 Build 20121010
! The Computer Language Benchmarks Game ! http://benchmarksgame.alioth.debian.org/ ! ! contributed by George R. Gonzalez ! fixed by Simon Geard program mandelbrot IMPLICIT NONE INTEGER, PARAMETER :: WantedPrecision = 8, Iterations = 50 INTEGER :: w, h, Len, i INTEGER :: y, x, LenOut, row REAL( WantedPrecision ) :: limit, limit2 REAL( WantedPrecision ) :: rx, ry, rw, rh REAL( WantedPrecision ) :: Zr, Zi, Cr, Ci, Tr, Ti REAL( WantedPrecision ) :: zero, one, v1p5, two CHARACTER(10) :: NUM INTEGER(1), ALLOCATABLE, DIMENSION( : ) :: OUTA INTEGER :: OUTP, OUTB, OutUnit INTEGER(1), ALLOCATABLE, DIMENSION( : ) :: OutBuf INTEGER(1) :: B LOGICAL :: Ans CONTINUE OutUnit = 6 Call GetArg( 1, NUM ) READ( NUM, *, END = 100 ) w; h = w; rw = w; rh = h Len = w * h ALLOCATE( OUTA ( Len ) ) OUTA = 0 OUTB = 0; limit = 2.0; limit2 = limit * limit IF( w < 1000 ) THEN WRITE( UNIT = OutUnit, FMT = "( 'P4', /, I3, 1X, I3 )" ) w, h ELSE WRITE( UNIT = OutUnit, FMT = "( 'P4', /, I4, 1X, I4 )" ) w, h ENDIF DO y = 0,h-1 ry = y DO x = 0,w-1 rx = x; Zr = 0.0;Zi = 0.0;Tr = 0.0;Ti = 0.0; Cr = 2.0 * rx / rw - 1.5 Ci = 2.0 * ry / rh - 1.0 Ans = .TRUE. i = 0; OUTB = OUTB + 1 DO WHILE( i < Iterations .AND. Ans ) Zi = 2.0 * Zr * Zi + Ci Zr = Tr - Ti + Cr Ti = Zi * Zi Tr = Zr * Zr i = i + 1 Ans = Tr + Ti <= limit2 END DO IF( Ans ) OUTA( OUTB ) = 1; END DO END DO LenOut = Len / 8 + 10 + h; ALLOCATE( OutBuf( LenOut ) ) I = 0; OUTP = 0; B = 0; row = 0 DO WHILE( I < OUTB ) I = I + 1 B = ISHFT( B, 1 ) + OUTA( I ) row = row + 1 IF( IAND( I, 7 ) == 0 ) THEN OUTP = OUTP + 1 OutBuf( OUTP ) = B; B = 0 ELSEIF( row >= w - 1 ) THEN OUTP = OUTP + 1 DO WHILE( IAND( I, 7 ) /= 0 ) B = ISHFT( B, 1 ) I = I + 1 END DO OutBuf( OUTP ) = B; B = 0 row = 0 ENDIF ENDDO WRITE( OutUnit, FMT = "(10000000A1)" , advance='no') ( OutBuf(I),I=1,OUTP ) 100 CONTINUE end program mandelbrot
Tue, 15 Jan 2013 07:22:53 GMT MAKE: /usr/local/src/intel/bin/ifort -O3 -fast -openmp mandelbrot.ifc-2.f90 -o mandelbrot.ifc-2.ifc_run ipo: remark #11001: performing single-file optimizations ipo: remark #11006: generating object file /tmp/ipo_ifortEitU2X.o rm mandelbrot.ifc-2.f90 0.32s to complete and log all make actions COMMAND LINE: ./mandelbrot.ifc-2.ifc_run 16000 UNEXPECTED OUTPUT _out 16000_out differ: byte 4, line 2 (BINARY) PROGRAM OUTPUT NOT SHOWN