/mobile Handheld Friendly website
Ubuntu : Intel® Q6600® quad-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 |
|---|---|---|---|---|---|
| 10 | 0.40 | 0.41 | 520 | 590 | 0% 2% 100% 3% |
| 11 | 5.03 | 5.04 | 520 | 590 | 1% 0% 1% 100% |
| 12 | 68.41 | 68.43 | 520 | 590 | 100% 0% 0% 0% |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read fannkuch-redux 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/ ! ! converted to fortran by Gilbert Brietzke on 31. Januar 2011 ! from C-code by Joseph Piché as a conversion ! from Java version by Oleg Mazurov and Isaac Gouy program fannkuch implicit none integer :: n,checksum,maxFlipsCount character(len=2) :: arg character(len=10) :: out call get_command_argument(1,arg);read(arg,'(I2)')n call fannkuchredux(n,checksum,maxFlipsCount) write(out,'(I10)') checksum; write(*,'(A)') trim(adjustl(out)) write(out,'(I10)') maxFlipsCount; write(*,'(A)') 'Pfannkuchen('//trim(adjustl(arg))//') = '//trim(adjustl(out)) contains subroutine fannkuchredux(n,checksum,maxFlipsCount) implicit none integer, intent(in) :: n integer, intent(out) :: maxFlipsCount,checksum integer :: perm(0:n-1),perm1(0:n-1),icount(0:n-1); integer :: i,r,temp,k,perm0,permCount = 0,flipsCount = 0; checksum = 0; maxFlipsCount = 0; do i = 0,n-1 perm1(i)= i; enddo r=n do while (.true.) do while (r /= 1) icount(r-1)=r; r=r-1; end do perm = perm1; flipsCount = 0; do while (perm(0)/=0) k = perm(0) do i=0,ishft(k+1,-1)-1 temp = perm(i); perm(i) = perm(k-i); perm(k-i) = temp; enddo flipsCount = flipsCount + 1; end do maxFlipsCount = max(maxFlipsCount,flipsCount); if (modulo(permCount,2) == 0)then checksum = checksum + flipsCount else checksum = checksum - flipsCount end if do while (.true.) if (r==n) return perm0 = perm1(0); i = 0; do while (i < r) perm1(i) = perm1(i + 1); i = i + 1; end do perm1(r) = perm0; icount(r) = icount(r) - 1; if (icount(r) > 0) exit; r = r + 1; end do permCount = permCount + 1; end do end subroutine fannkuchredux end program fannkuch
Tue, 15 Jan 2013 06:02:04 GMT MAKE: /usr/local/src/intel/bin/ifort -O3 -fast -openmp fannkuchredux.f90 -o fannkuchredux.ifc_run ipo: remark #11001: performing single-file optimizations ipo: remark #11006: generating object file /tmp/ipo_ifortVmPlbP.o rm fannkuchredux.f90 0.55s to complete and log all make actions COMMAND LINE: ./fannkuchredux.ifc_run 12 PROGRAM OUTPUT: 3968050 Pfannkuchen(12) = 65