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.8Python 3 #2 0.140.15?394  7% 0% 100% 13%
1.8Python 3 #2 0.150.15?394  13% 7% 0% 100%
2.0Python 3 #2 0.160.16?394  24% 25% 100% 6%
2.0PyPy 3 #8 0.160.16?594  0% 0% 0% 100%
2.0PyPy 3 #8 0.170.17?594  0% 0% 100% 0%
2.1PyPy 3 #8 0.170.17?594  0% 0% 0% 100%
2.1Python 2 #2 0.090.17?394  16% 59% 6% 35%
2.3PyPy 2 #8 0.180.18?594  5% 100% 0% 0%
2.3PyPy 2 #8 0.180.18?594  100% 0% 0% 0%
2.3PyPy 2 #8 0.190.19?594  0% 0% 100% 0%
3.8PyPy 2 #6 0.300.301,552498  0% 0% 100% 0%
3.8PyPy 2 #6 0.310.311,556498  0% 34% 67% 6%
3.9PyPy 2 #6 0.310.311,556498  0% 0% 100% 0%
4.3Python development version #2 0.340.351,652394  3% 0% 3% 100%
4.4Python development version #2 0.350.36856394  3% 3% 6% 97%
4.4Python development version #2 0.350.361,648394  17% 83% 6% 0%
4.5PyPy 3 #6 0.360.361,276498  3% 0% 100% 0%
4.6PyPy 3 #6 0.370.371,348498  3% 100% 0% 5%
4.8PyPy 3 #6 0.380.391,280498  21% 100% 3% 5%
5.5Nuitka #3 0.450.4535,968642  2% 2% 0% 100%
5.6Nuitka #3 0.450.4532,700642  2% 0% 100% 0%
5.7Python 3 #3 0.460.4636,356642  0% 7% 100% 12%
5.7Python 3 #3 0.460.4736,192642  2% 7% 100% 2%
6.1Python 3 #3 0.490.5035,388642  18% 22% 100% 14%
6.4Nuitka #3 0.470.5233,896642  78% 4% 21% 2%
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%
10Python development version #3 0.690.8238,068642  77% 21% 7% 2%
12PyPy 2 #5 1.780.9785,076595  41% 61% 45% 38%
12PyPy 2 #5 1.860.9883,740595  64% 47% 38% 41%
12PyPy 2 #5 1.860.9884,416595  46% 61% 46% 42%
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%
19PyPy 3 #5 3.151.5684,856575  39% 75% 43% 46%
21PyPy 3 #5 3.061.6784,788575  44% 41% 60% 38%
21PyPy 3 #5 3.231.6982,016575  43% 45% 72% 36%
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%
33Nuitka #5 10.182.6861,876575  96% 94% 97% 94%
34Nuitka #5 10.122.7963,164575  92% 91% 92% 93%
35Nuitka #5 10.282.8163,824575  93% 94% 93% 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%
42Cython #6 3.443.448,368498  2% 8% 100% 6%
43Cython #6 3.463.468,288498  100% 9% 8% 3%
43Python 3 #5 12.553.4858,032575  95% 94% 93% 93%
43Cython #6 3.513.518,332498  3% 8% 1% 100%
46Python 3 #5 12.283.6955,972575  94% 93% 95% 93%
47Python 3 #5 12.403.7957,868575  94% 94% 96% 95%
47Nuitka #8 3.833.8310,412594  1% 0% 100% 0%
48Nuitka #8 3.863.8610,444594  100% 0% 1% 1%
48Nuitka #8 3.863.8710,520594  0% 0% 100% 2%
49Nuitka #6 3.963.9610,524498  1% 0% 100% 0%
49Python 2 #6 3.973.986,156498  2% 3% 100% 1%
49Python 2 #6 4.004.006,260498  100% 4% 2% 2%
50Python 2 #6 4.014.016,296498  5% 100% 1% 1%
50Nuitka #6 4.044.0510,504498  0% 1% 100% 4%
51Nuitka #6 4.154.1510,412498  0% 100% 3% 1%
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%
54Python development version #5 15.884.3853,016575  94% 95% 94% 92%
57Python 2 #8 4.594.606,388594  3% 5% 6% 100%
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%
65Python 3 #6 5.235.278,856498  69% 25% 24% 55%
67Python 3 #6 5.345.408,936498  79% 47% 24% 31%
67Cython #8 5.425.438,248594  100% 4% 2% 1%
67Python development version #6 5.465.467,384498  100% 4% 1% 1%
68Python 3 #6 5.465.478,844498  74% 35% 46% 31%
68Python development version #6 5.505.507,376498  3% 2% 100% 2%
69Python development version #6 5.565.567,452498  3% 100% 2% 3%
74Python 3 #8 5.955.968,980594  15% 99% 14% 10%
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%
74Python 3 #8 6.026.039,060594  15% 10% 15% 100%
81Python 3 #8 6.576.588,900594  100% 26% 21% 25%
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