performance measurements

Each table row shows performance measurements for this Python 3 program with a particular command-line input value N.

 N  CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
5001.001.0019,592379  0% 1% 2% 100%
3,00030.2130.36292,096379  0% 1% 1% 100%
5,500101.22101.71957,344379  0% 1% 1% 100%

Read the ↓ make, command line, and program output logs to see how this program was run.

Read spectral-norm benchmark to see what this program should do.

 notes

Python 3.4.0 (default, Mar 17 2014, 08:23:52) [GCC 4.8.1] on linux

 spectral-norm Python 3 #3 program source code

# The Computer Language Benchmarks Game
# http://benchmarksgame.alioth.debian.org/
#
# Contributed by Sebastien Loisel
# Fixed by Isaac Gouy
# Sped up by Josh Goldfoot
# Dirtily sped up by Simon Descarpentries
# Used list comprehension by Vadim Zelenin
# 2to3
# Sped up with numpy by @tim_1729

from math      import sqrt
from sys       import argv
import numpy


def eval_A(i, j):
    ij = i+j
    return 1.0 / (ij * (ij + 1) / 2 + i + 1)


def eval_A_times_u(u):
    local_eval_A = eval_A

    n = u.shape[0]
    # output is n items
    iis = numpy.arange(n)
    iis = numpy.reshape(iis,(n,1))
    j = numpy.arange(n)
    j = numpy.tile(j,(n,1)) # j is a matrix. Every row is [ 0, 1, 2, ...]
    u_j = numpy.tile(u,(n,1))
    output = numpy.sum(local_eval_A(iis,j)*u_j,axis=1)
    return output


def eval_At_times_u(u):
    local_eval_A = eval_A

    n = u.shape[0]
    # output is n items
    # each item is sum of things in loop
    iis = numpy.arange(n)
    iis = numpy.reshape(iis,(n,1))
    j = numpy.arange(n)
    j = numpy.tile(j,(n,1))
    u_j = numpy.tile(u,(n,1))
    output = numpy.sum(local_eval_A(j,iis)*u_j,axis=1)
    return output



def eval_AtA_times_u(u):
    return eval_At_times_u(eval_A_times_u(u))


def main():
    n = int(argv[1])
    u = numpy.ones(n)
    local_eval_AtA_times_u = eval_AtA_times_u

    for dummy in range(10):
        v = local_eval_AtA_times_u(u)
        u = local_eval_AtA_times_u(v)

    vBv = numpy.sum( u * v )
    vv = numpy.sum( v * v )

    print("%0.9f" % (numpy.sqrt(vBv/vv)))

if __name__ == "__main__":
    main()

 make, command-line, and program output logs

Sun, 23 Mar 2014 17:21:16 GMT

MAKE:
mv spectralnorm.python3-3.python3 spectralnorm.python3-3.py
0.01s to complete and log all make actions

COMMAND LINE:
/usr/local/src/Python-3.4.0/bin/python3.4 spectralnorm.python3-3.py 5500

PROGRAM OUTPUT:
1.274224153

Revised BSD license

  Home   Conclusions   License   Play