[MLton-devel] Basis-2002 benchmarks

Matthew Fluet fluet@CS.Cornell.EDU
Fri, 18 Oct 2002 09:19:48 -0400 (EDT)


BTW, here are the results from benchmarks I ran yesterday.  Runtimes
aren't bad with the exception of wc-{input1,scanStream}, although,
surprisingly, mlyacc and lexgen show a decent improvement.

The slowdown in DLXSimulator seems to be related to inlining, as the
following shows:

MLton0 -- mlton.cvs.basis-1997 
MLton1 -- mlton.cvs.basis-2002 
MLton2 -- mlton.cvs.basis-2002 -inline 500
compile time
benchmark    MLton0 MLton1 MLton2
DLXSimulator   2.77   3.00   3.13
psdes-random   0.48   0.61   0.52
run time
benchmark    MLton0 MLton1 MLton2
DLXSimulator  87.28  95.88  87.09
psdes-random  23.46  26.33  26.33
run time ratio
benchmark    MLton1 MLton2
DLXSimulator   1.10   1.00
psdes-random   1.12   1.12
size
benchmark    MLton0 MLton1 MLton2
DLXSimulator 86,651 91,731 95,427
psdes-random 32,514 34,786 32,546

The psdes-random slowdown seems to be due to poor register allocation.
The SSA output for mlton.cvs.basis-1997 and 
mlton.cvs.basis-2002 -inline 550 are alpha-equivalent except for the order
of arguments to one commutative primitive (switched by commonSubexp); this
apparently was enough to cause different register allocation around that
point, which happened to be on the critical path.


MLton0 -- mlton.cvs.basis-1997 
MLton1 -- mlton.cvs.basis-2002 
compile time
benchmark         MLton0 MLton1
barnes-hut          1.76   2.21
boyer               3.89   3.73
checksum            0.47   0.58
count-graphs        1.22   1.27
DLXSimulator        2.79   3.02
fft                 0.92   1.08
fib                 0.40   0.55
hamlet             38.03  39.14
imp-for             0.45   0.55
knuth-bendix        1.58   1.95
lexgen              4.09   4.61
life                0.92   1.07
logic               2.07   2.24
mandelbrot          0.45   0.59
matrix-multiply     0.52   0.62
md5                 0.87      *
merge               0.45   0.57
mlyacc             16.27  15.93
model-elimination  16.45  17.16
mpuz                0.60   0.71
nucleic             5.05   5.22
peek                0.71   1.01
psdes-random        0.46   0.62
ratio-regions       1.70   1.87
ray                 2.53   3.09
raytrace            7.90   8.17
simple              5.12   5.60
smith-normal-form   5.63   5.93
tailfib             0.41   0.55
tak                 0.42   0.56
tensor              2.21      *
tsp                 1.07   1.39
tyan                2.69   3.02
vector-concat       0.49   0.64
vector-rev          0.46   0.54
vliw                8.90  10.00
wc-input1           1.14   1.66
wc-scanStream       1.17   1.62
zebra               4.29   4.75
zern                0.74   0.91
run time
benchmark         MLton0  MLton1
barnes-hut         48.41   48.49
boyer              66.17   67.35
checksum           47.34   47.38
count-graphs       46.21   45.98
DLXSimulator       87.73   96.85
fft                37.12   38.02
fib                49.49   49.50
hamlet             60.01   56.50
imp-for            57.98   57.98
knuth-bendix       47.88   39.72
lexgen             44.13   41.45
life               43.33   43.06
logic              68.47   67.21
mandelbrot         55.69   56.50
matrix-multiply    31.61   31.70
md5               142.83       *
merge              94.12   87.52
mlyacc             39.74   35.94
model-elimination  74.67   75.38
mpuz               37.38   39.02
nucleic            39.23   39.68
peek               35.41   35.42
psdes-random       23.45   26.33
ratio-regions      36.10   35.40
ray                29.97   29.30
raytrace           42.73   42.01
simple             49.87   49.33
smith-normal-form  53.66   53.24
tailfib            42.84   42.84
tak                89.90   90.06
tensor             32.25       *
tsp                68.17   68.55
tyan               59.40   57.72
vector-concat      89.64   89.79
vector-rev        116.23  115.61
vliw               53.87   52.84
wc-input1          37.59 2189.27
wc-scanStream      48.95 1614.30
zebra              39.94   39.63
zern               44.47   44.38
run time ratio
benchmark         MLton1
barnes-hut          1.00
boyer               1.02
checksum            1.00
count-graphs        1.00
DLXSimulator        1.10
fft                 1.02
fib                 1.00
hamlet              0.94
imp-for             1.00
knuth-bendix        0.83
lexgen              0.94
life                0.99
logic               0.98
mandelbrot          1.01
matrix-multiply     1.00
merge               0.93
mlyacc              0.90
model-elimination   1.01
mpuz                1.04
nucleic             1.01
peek                1.00
psdes-random        1.12
ratio-regions       0.98
ray                 0.98
raytrace            0.98
simple              0.99
smith-normal-form   0.99
tailfib             1.00
tak                 1.00
tsp                 1.01
tyan                0.97
vector-concat       1.00
vector-rev          0.99
vliw                0.98
wc-input1          58.24
wc-scanStream      32.98
zebra               0.99
zern                1.00
size
benchmark            MLton0    MLton1
barnes-hut           62,072    72,408
boyer               124,682   120,458
checksum             31,498    33,810
count-graphs         51,098    52,050
DLXSimulator         86,683    91,763
fft                  40,542    42,950
fib                  31,498    33,842
hamlet            1,090,075 1,089,923
imp-for              31,514    33,938
knuth-bendix         71,107    77,355
lexgen              152,712   156,336
life                 47,546    50,034
logic                88,034    90,226
mandelbrot           31,602    34,018
matrix-multiply      32,066    34,378
md5                  40,163         *
merge                32,714    35,114
mlyacc              462,728   446,768
model-elimination   539,424   514,960
mpuz                 35,498    38,290
nucleic              70,242    72,698
peek                 39,163    45,035
psdes-random         32,546    34,818
ratio-regions        49,874    52,826
ray                  88,699    98,643
raytrace            238,392   246,432
simple              184,550   187,910
smith-normal-form   140,668   145,188
tailfib              31,226    33,618
tak                  31,666    33,978
tensor               61,779         *
tsp                  45,651    51,915
tyan                 89,307    94,931
vector-concat        32,010    34,890
vector-rev           31,890    34,146
vliw                294,868   289,004
wc-input1            52,696    62,056
wc-scanStream        53,304    62,016
zebra               116,843   122,699
zern                 38,085    39,517



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel