spectral-norm benchmark N=550

Each chart bar shows how many times slower, one ↓ spectral-norm program was, compared to the fastest program.

These are not the only programs that could be written. These are not the only compilers and interpreters. These are not the only programming languages.

Column × shows how many times more each program used compared to the benchmark program that used least.

    sort sortsort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
1.0Python 2 #2 0.080.08?394  0% 0% 100% 0%
1.0Python 2 #2 0.080.08?394  0% 0% 100% 0%
1.4PyPy 2 #8 0.110.11?594  100% 0% 0% 0%
1.4PyPy 2 #8 0.110.11?594  0% 100% 0% 0%
1.5PyPy 2 #8 0.120.12?594  8% 17% 8% 100%
1.6PyPy 3 #8 0.130.13?594  93% 14% 7% 0%
1.6Python 3 #2 0.130.13?394  15% 79% 0% 0%
1.6PyPy 3 #8 0.130.13?594  92% 0% 0% 0%
1.6PyPy 3 #8 0.130.13?594  0% 8% 100% 0%
1.6Python 3 #2 0.130.13?394  0% 0% 100% 0%
1.6Python 3 #2 0.130.13?394  0% 0% 100% 0%
2.1Python 2 #2 0.090.17?394  16% 59% 6% 35%
2.2PyPy 2 #2 0.180.18?394  0% 0% 0% 100%
2.2PyPy 2 #2 0.180.18?394  0% 5% 5% 100%
2.3PyPy 2 #2 0.180.19?394  0% 0% 100% 5%
3.0PyPy 2 #6 0.240.241,476498  4% 100% 0% 0%
3.0PyPy 2 #6 0.240.241,464498  100% 0% 4% 0%
3.1PyPy 2 #6 0.250.251,488498  0% 100% 4% 8%
4.0PyPy 3 #6 0.320.331,424498  3% 100% 0% 6%
4.1PyPy 3 #6 0.330.341,408498  100% 6% 9% 3%
4.1PyPy 3 #6 0.330.341,396498  16% 88% 9% 12%
4.3Python development version #2 0.340.351,652394  3% 0% 3% 100%
4.4Python development version #2 0.350.361,648394  17% 83% 6% 0%
4.4Python development version #2 0.350.36856394  3% 3% 6% 97%
5.4Python 3 #3 0.440.4435,296642  100% 0% 0% 4%
5.5Python 3 #3 0.440.4434,888642  95% 2% 0% 7%
5.6Nuitka #3 0.450.4635,684642  2% 0% 2% 100%
5.7Python 3 #3 0.460.4635,276642  4% 100% 0% 16%
5.7Nuitka #3 0.460.4635,564642  100% 4% 7% 20%
6.0Nuitka #3 0.480.4835,920642  100% 4% 6% 0%
8.0Python development version #3 0.650.6538,024642  2% 5% 2% 100%
8.2Python development version #3 0.660.6632,048642  87% 0% 14% 6%
9.8PyPy 2 #5 1.670.80285,708595  49% 59% 56% 63%
10PyPy 2 #5 1.680.82288,688595  46% 54% 56% 52%
10PyPy 2 #5 1.700.82287,324595  53% 51% 58% 49%
10Python development version #3 0.690.8238,068642  77% 21% 7% 2%
14PyPy 3 #5 2.171.12228,116575  51% 56% 48% 45%
14PyPy 3 #5 2.181.14227,364575  45% 54% 56% 53%
14PyPy 3 #5 2.171.16226,816575  52% 47% 44% 57%
14Numba 1.161.1672,624663  6% 2% 5% 99%
15Numba 1.181.1972,848663  99% 3% 3% 2%
19Numba 1.231.5572,864663  12% 90% 3% 5%
27Pyston #5 7.492.20162,788595  92% 85% 83% 84%
27Pyston #5 7.502.20162,628595  84% 91% 85% 84%
27Pyston #5 7.712.21192,684595  86% 90% 95% 87%
30Pyston #8 2.432.4428,712594  100% 1% 4% 6%
31Pyston #8 2.482.4936,292594  3% 2% 100% 1%
31Pyston #8 2.492.4928,872594  7% 100% 3% 6%
33Cython #5 9.752.6753,796575  95% 94% 96% 94%
33Cython #5 9.732.6855,416575  93% 92% 94% 91%
33Cython #5 9.752.6853,040575  96% 93% 93% 93%
34Nuitka #5 10.342.7859,416575  95% 95% 94% 94%
34Nuitka #5 10.182.7861,684575  93% 95% 93% 92%
34Nuitka #5 10.292.7962,388575  97% 94% 94% 94%
36Python 2 #5 10.672.9443,812595  94% 94% 93% 94%
36Pyston #6 2.942.9428,576498  1% 100% 1% 1%
36Python 2 #5 10.632.9446,536595  94% 93% 93% 95%
37Pyston #6 2.952.9628,900498  54% 3% 48% 1%
38Python 2 #5 10.603.0544,712595  94% 94% 93% 94%
38Pyston #6 3.053.0635,996498  100% 2% 2% 1%
42Python 3 #5 12.693.3757,316575  95% 96% 95% 94%
42Python 3 #5 12.713.3757,768575  95% 96% 94% 95%
42Cython #6 3.443.448,368498  2% 8% 100% 6%
43Cython #6 3.463.468,288498  100% 9% 8% 3%
43Python 3 #5 12.863.4756,216575  96% 93% 94% 94%
43Cython #6 3.513.518,332498  3% 8% 1% 100%
49Nuitka #8 3.933.9410,180594  100% 2% 1% 1%
49Nuitka #8 3.943.9410,032594  1% 3% 100% 1%
49Python 2 #6 3.973.986,156498  2% 3% 100% 1%
49Nuitka #6 3.993.9910,072498  2% 1% 1% 100%
49Python 2 #6 4.004.006,260498  100% 4% 2% 2%
49Nuitka #8 4.004.0010,192594  11% 25% 69% 1%
50Python 2 #6 4.014.016,296498  5% 100% 1% 1%
50Nuitka #6 4.094.0910,060498  1% 3% 100% 3%
52Python development version #5 15.554.1852,796575  96% 97% 95% 95%
52Python development version #5 15.574.1854,808575  96% 97% 95% 95%
52Cython #8 4.214.218,364594  82% 5% 19% 2%
52Cython #8 4.214.228,424594  3% 100% 2% 2%
53Nuitka #6 4.314.3210,064498  100% 2% 1% 4%
54Python development version #5 15.884.3853,016575  94% 95% 94% 92%
56Python 3 #6 4.564.568,812498  0% 100% 0% 1%
56Python 3 #6 4.564.578,704498  1% 0% 100% 0%
57Python 2 #8 4.594.606,388594  3% 5% 6% 100%
57Python 3 #6 4.654.658,544498  0% 100% 1% 3%
58Python 2 #8 4.674.676,388594  4% 100% 1% 5%
60Python 2 #8 4.824.826,376594  100% 3% 4% 0%
61IronPython #8 5.004.9776,968594  3% 98% 6% 3%
61IronPython #8 5.064.9777,124594  5% 12% 6% 90%
62IronPython #8 5.024.9873,012594  4% 3% 99% 4%
67Cython #8 5.425.438,248594  100% 4% 2% 1%
67Python development version #6 5.465.467,384498  100% 4% 1% 1%
68Python development version #6 5.505.507,376498  3% 2% 100% 2%
69Python 3 #8 5.555.568,792594  2% 0% 1% 100%
69Python development version #6 5.565.567,452498  3% 100% 2% 3%
69Python 3 #8 5.605.608,880594  100% 2% 1% 0%
70Python 3 #8 5.655.658,764594  100% 1% 2% 2%
74IronPython #6 5.625.9793,380498  4% 4% 92% 4%
74IronPython #6 5.625.9888,844498  16% 2% 4% 80%
74IronPython #6 5.605.9891,076498  5% 86% 6% 7%
94Python development version #8 7.617.617,544594  3% 3% 100% 3%
95Python development version #8 7.667.677,580594  100% 3% 1% 2%
98Jython #8 12.877.94289,792594  48% 34% 57% 33%
98Python development version #8 7.937.947,544594  62% 3% 4% 40%
100Jython #8 14.568.07299,020594  65% 48% 54% 30%
103Jython #8 14.868.31303,360594  51% 60% 47% 35%
104MicroPython #6 8.428.424,244498  79% 0% 21% 1%
104MicroPython #6 8.428.424,308498  1% 0% 1% 100%
106MicroPython #6 8.558.554,412498  1% 0% 100% 1%
129Jython #6 14.9010.44282,340498  25% 60% 35% 33%
131Jython #6 15.3610.61282,640498  38% 51% 18% 47%
138Jython #6 16.1111.19283,116498  54% 33% 55% 44%
missing benchmark programs
Shedskin No program
Grumpy No program

 spectral-norm benchmark : Eigenvalue using the power method

diff program output N = 100 with this output file to check your program is correct before contributing.

We are trying to show the performance of various programming language implementations - so we ask that contributed programs not only give the correct result, but also use the same algorithm to calculate that result.

Each program should calculate the spectral norm of an infinite matrix A, with entries a11=1, a12=1/2, a21=1/3, a13=1/4, a22=1/5, a31=1/6, etc

For more information see challenge #3 in Eric W. Weisstein, "Hundred-Dollar, Hundred-Digit Challenge Problems" and "Spectral Norm".

From MathWorld--A Wolfram Web Resource.
http://mathworld.wolfram.com/Hundred-DollarHundred-DigitChallengeProblems.html
http://mathworld.wolfram.com/SpectralNorm.html

Thanks to Sebastien Loisel for this benchmark.

Revised BSD license

  Home   Conclusions   License   Play