Subject: [PATCH] Tunable [email-masked] package

From: "Dr. Arne Babenhauserheide" <[email-masked]>
Date: Wed, 22 Mar 2023 22:19:22 +0100

Hi,

The attached patch adds a [email-masked] package that enables CPU
architecture tuning for Guile and for a specialized libgc.

It creates new packages to avoid causing rebuilds.

From fbde1198a2386874e059faf8b3afdd09288bc7aa Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <[email-masked]>
Date: Wed, 22 Mar 2023 18:32:08 +0100
Subject: [PATCH] gnu: create tunable [email-masked] that uses tunable bdw-gc

* gnu/packages/bdw-gc.scm (libgc/tunable): new derived package with
  (tunable? . #t) property.
* gnu/packages/guile.scm (guile-3.0-latest/tunable): new derived package
  with (tunable? . #t) property that uses libgc/tunable as propagated input.
---
 gnu/packages/bdw-gc.scm |  8 ++++++++
 gnu/packages/guile.scm  | 22 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index ae0d761ac3..a5a58da877 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -96,6 +96,14 @@ (define-public libgc
 
    (license (x11-style (string-append home-page "license.txt")))))
 
+(define-public libgc/tunable
+  (package
+    (inherit libgc)
+    (properties
+     '((release-monitoring-url . "https://www.hboehm.info/gc/gc_source/")
+       (upstream-name . "gc")
+       (tunable? #t)))))
+
 ;; TODO: Add a static output in libgc in the next rebuild cycle.
 (define-public libgc/static-libs
   (package/inherit
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 2fd9b711ce..715f5c7a61 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -419,6 +419,28 @@ (define-public guile-3.0-latest
                         "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
                '())))))))
 
+(define-public guile-3.0-latest/tunable
+  (package
+    (inherit guile-3.0-latest)
+    (version "3.0.9t")
+    (source (origin
+              (inherit (package-source guile-3.0))
+              (uri (string-append "mirror://gnu/guile/guile-"
+                                  (string-delete #\t version)
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs guile-3.0-latest)
+       (replace "bdw-gc" libgc/tunable)
+       ))
+
+    (properties '((tunable? . #t)               ;this is the point of this package
+                  (timeout . 72000)             ;20 hours
+                  (max-silent-time . 36000))))) ;10 hours (needed on ARM
+                                        ;  when heavily loaded)
+
 ;;; The symbol guile-3.0/fixed should be used when guile-3.0 needs fixes
 ;;; (security or else) and this deprecation could be removed.
 (define-deprecated/public-alias guile-3.0/fixed guile-3.0/pinned)
-- 
2.39.2

The results of a benchmark are still not fully conclusive: regular Guile
seems to be slightly slower in the Geometric mean of all tests, but
there are benchmarks where a tuned Guile is slower.

Note that this is tuning for znver3 while I actually have znver4, but
support for the correct compile-target will only arrive with GCC 13.

To replicate the benchmarks:

echo guix pull --disable-authentication --allow-downgrades -u … # get the new packages

guix shell mercurial -- hg clone https://hg.sr.ht/~arnebab/wisp
guix shell git -- git clone https://github.com/ecraven/r7rs-benchmarks 
cd r7rs-benchmarks

for N in {1..3}; do
  guix shell --tune [email-masked] -- ./bench guile all && mv results.Guile{,-tuned${N}}
  guix shell [email-masked] -- ./bench guile all && mv results.Guile{,-regular${N}}
  sed -i 's/\+guile/+guiletuned/' results.Guile-tuned${N}
  sed -i 's/\+guile/+guileregular/' results.Guile-regular${N}
done
grep -a -h '+!CSVLINE' results.Guile-{regular,tuned}* | sed 's/+!CSVLINE!+//' > all.csv
guix shell guile-wisp guile -- ../wisp/examples/evaluate-r7rs-benchmark.w ~/eigenes/Programme/r7rs-benchmarks/all.csv guiletuned
guix shell guile-wisp guile -- ../wisp/examples/evaluate-r7rs-benchmark.w ~/eigenes/Programme/r7rs-benchmarks/all.csv guileregular

My results with N in {1..2}, the Geometric mean:

Guile tuned has a slowdown of 1.03512801239189
Guile regular has a slowdown of 1.0504373210343294

This suggests that the regular Guile is 1.48% slower than tuned Guile.

Since I have no errorbars, I cannot say whether this is significant.

=== Guiletuned slowdown ===

(("bv2string:1000:1000:100" . 1.0)
 ("equal" . #f)
 ("mperm:20:10:2:1" . 1.146669471586088)
 ("gcbench:20:1" . 1.0197445340007967)
 ("sboyer:5:1" . 1.0398502157522214)
 ("nboyer:5:1" . 1.050828554948064)
 ("chudnovsky:50:500:50:1000"
  .
  1.0236854348323314)
 ("slatex:500" . 1.0063944149759714)
 ("scheme:100000" . 1.0689169431069399)
 ("quicksort:10000:2500" . 1.003088477529797)
 ("primes:1000:10000" . 1.041839283639136)
 ("peval:2000" . 1.0560148767561295)
 ("parsing:2500" . 1.0003564615141731)
 ("paraffins:23:10" . 2.0039145601078086)
 ("nqueens:13:10" . 1.0)
 ("mazefun:11:11:10000" . 1.034627134692567)
 ("maze:20:7:10000" . 1.001234149986604)
 ("matrix:5:5:2500" . 1.047237971262676)
 ("lattice:44:10" . 1.003284878892407)
 ("graphs:7:3" . 1.101724767552233)
 ("earley:1" . 1.0507663201957202)
 ("dynamic:500" . 1.0806476338778386)
 ("conform:500" . 1.0)
 ("compiler:2000" . 1.0973709486022507)
 ("read1:2500" . 1.0)
 ("wc:inputs/bib:50" . 1.0252716381981584)
 ("tail:50" . 1.070013760352806)
 ("cat:50" . 1.1006490143447183)
 ("sum1:25" . 1.0)
 ("string:500000:100" . 1.005448377967908)
 ("array1:1000000:500" . 1.017108880809611)
 ("ack:3:12:2" . 1.0343152722188402)
 ("simplex:1000000" . 1.0213054034897673)
 ("ray:50" . 1.0090968950973398)
 ("pnpoly:1000000" . 1.0091804774033606)
 ("pi:50:500:50:100" . 1.0)
 ("nucleic:50" . 1.0173803271423734)
 ("mbrotZ:75:1000" . 1.022665128035874)
 ("mbrot:75:1000" . 1.0)
 ("fft:65536:100" . 1.0)
 ("sumfp:1000000.0:500" . 1.0)
 ("sum:10000:200000" . 1.0028978038917624)
 ("fibfp:35.0:10" . 1.029590065926432)
 ("fibc:30:10" . 1.0072040559671238)
 ("fib:40:5" . 1.0023503962392322)
 ("ctak:27:16:8:1" . 1.0)
 ("cpstak:40:20:11:1" . 1.0)
 ("ntakl:40:20:12:1" . 1.046107228813898)
 ("takl:40:20:12:1" . 1.0327425092626041)
 ("tak:40:20:11:1" . 1.0)
 ("triangl:22:1:50" . 1.0143942222863194)
 ("puzzle:1000" . 1.2229189054254013)
 ("divrec:1000:1000000" . 1.0074179348861916)
 ("diviter:1000:1000000" . 1.043931078583493)
 ("destruc:600:50:4000" . 1.0240507947888393)
 ("deriv:10000000" . 1.0319784815172544)
 ("browse:2000" . 1.1070660842252487)
 ("bv2string:1000:1000:100" . 1.0338536673222782)
 ("equal" . #f)
 ("mperm:20:10:2:1" . 1.1881732405136267)
 ("gcbench:20:1" . 1.0)
 ("sboyer:5:1" . 1.0631408998092902)
 ("nboyer:5:1" . 1.0217971951625024)
 ("chudnovsky:50:500:50:1000" . 1.0)
 ("slatex:500" . 1.0)
 ("scheme:100000" . 1.0)
 ("quicksort:10000:2500" . 1.0543263325575605)
 ("primes:1000:10000" . 1.0067412573033894)
 ("peval:2000" . 1.0)
 ("parsing:2500" . 1.0)
 ("paraffins:23:10" . 1.0)
 ("nqueens:13:10" . 1.0176605905015021)
 ("mazefun:11:11:10000" . 1.037746391910457)
 ("maze:20:7:10000" . 1.0)
 ("matrix:5:5:2500" . 1.0200605013910409)
 ("lattice:44:10" . 1.0102542438570286)
 ("graphs:7:3" . 1.0384572473968816)
 ("earley:1" . 1.0)
 ("dynamic:500" . 1.0)
 ("conform:500" . 1.0091118513899833)
 ("compiler:2000" . 1.0)
 ("read1:2500" . 1.0599058441532945)
 ("wc:inputs/bib:50" . 1.0746142263219225)
 ("tail:50" . 1.0632740266035832)
 ("cat:50" . 1.0929665813153533)
 ("sum1:25" . 1.036061672363642)
 ("string:500000:100" . 1.0162155078942512)
 ("array1:1000000:500" . 1.0515376902103308)
 ("ack:3:12:2" . 1.0118706763775067)
 ("simplex:1000000" . 1.0164588830600216)
 ("ray:50" . 1.0)
 ("pnpoly:1000000" . 1.0)
 ("pi:50:500:50:100" . 1.045459192674658)
 ("nucleic:50" . 1.0017484672084827)
 ("mbrotZ:75:1000" . 1.0)
 ("mbrot:75:1000" . 1.0311423294990856)
 ("fft:65536:100" . 1.0504466238403414)
 ("sumfp:1000000.0:500" . 1.0091469248322233)
 ("sum:10000:200000" . 1.0)
 ("fibfp:35.0:10" . 1.0)
 ("fibc:30:10" . 1.1257119803649067)
 ("fib:40:5" . 1.0)
 ("ctak:27:16:8:1" . 1.0148864364373957)
 ("cpstak:40:20:11:1" . 1.011283388260497)
 ("ntakl:40:20:12:1" . 1.0)
 ("takl:40:20:12:1" . 1.007232975497366)
 ("tak:40:20:11:1" . 1.0362220583744437)
 ("triangl:22:1:50" . 1.022212297184504)
 ("puzzle:1000" . 1.2350889918747268)
 ("divrec:1000:1000000" . 1.0064081034755894)
 ("diviter:1000:1000000" . 1.0)
 ("destruc:600:50:4000" . 1.0)
 ("deriv:10000000" . 1.0061506030191765)
 ("browse:2000" . 1.0065279614595284))

=== Guiletuned Geometric Mean slowdown (successful tests / total tests) ===

1.03512801239189 (112 / 114)

=== Guileregular slowdown ===

(("bv2string:1000:1000:100" . 1.0674803047626884)
 ("equal" . #f)
 ("mperm:20:10:2:1" . 1.094739035540671)
 ("gcbench:20:1" . 1.0172414374269374)
 ("sboyer:5:1" . 1.0)
 ("nboyer:5:1" . 1.0)
 ("chudnovsky:50:500:50:1000"
  .
  1.1734845659670659)
 ("slatex:500" . 1.0239374916619306)
 ("scheme:100000" . 1.122700507430036)
 ("quicksort:10000:2500" . 1.0)
 ("primes:1000:10000" . 1.0)
 ("peval:2000" . 1.0088858652748092)
 ("parsing:2500" . 1.0418903162390507)
 ("paraffins:23:10" . 2.042048452193248)
 ("nqueens:13:10" . 1.0100153261373226)
 ("mazefun:11:11:10000" . 1.0)
 ("maze:20:7:10000" . 1.048959091743095)
 ("matrix:5:5:2500" . 1.0)
 ("lattice:44:10" . 1.0079437861216478)
 ("graphs:7:3" . 1.198135373192713)
 ("earley:1" . 1.0959681146976517)
 ("dynamic:500" . 1.16155735839947)
 ("conform:500" . 1.0119217370442324)
 ("compiler:2000" . 1.0306165278415973)
 ("read1:2500" . 1.0460552396933456)
 ("wc:inputs/bib:50" . 1.0)
 ("tail:50" . 1.0319054479289398)
 ("cat:50" . 1.0)
 ("sum1:25" . 1.034137468078866)
 ("string:500000:100" . 1.0)
 ("array1:1000000:500" . 1.0)
 ("ack:3:12:2" . 1.0057561961050057)
 ("simplex:1000000" . 1.0)
 ("ray:50" . 1.0438647708135202)
 ("pnpoly:1000000" . 1.0874091135942872)
 ("pi:50:500:50:100" . 1.0215934390378087)
 ("nucleic:50" . 1.0)
 ("mbrotZ:75:1000" . 1.052938347579755)
 ("mbrot:75:1000" . 1.0329378591712912)
 ("fft:65536:100" . 1.0189087888402792)
 ("sumfp:1000000.0:500" . 1.0482534106366277)
 ("sum:10000:200000" . 1.0289912283371638)
 ("fibfp:35.0:10" . 1.033671691949834)
 ("fibc:30:10" . 1.178850020182939)
 ("fib:40:5" . 1.024466514102094)
 ("ctak:27:16:8:1" . 1.1039955311250749)
 ("cpstak:40:20:11:1" . 1.0371479505513828)
 ("ntakl:40:20:12:1" . 1.0213756257162367)
 ("takl:40:20:12:1" . 1.0)
 ("tak:40:20:11:1" . 1.0126417896363957)
 ("triangl:22:1:50" . 1.0)
 ("puzzle:1000" . 1.0)
 ("divrec:1000:1000000" . 1.0450154469330961)
 ("diviter:1000:1000000" . 1.0591207445325488)
 ("destruc:600:50:4000" . 1.0838399255052662)
 ("deriv:10000000" . 1.0)
 ("browse:2000" . 1.018717561314545)
 ("bv2string:1000:1000:100" . 1.036089236974368)
 ("equal" . #f)
 ("mperm:20:10:2:1" . 1.0)
 ("gcbench:20:1" . 1.0243606915521992)
 ("sboyer:5:1" . 1.00368112089037)
 ("nboyer:5:1" . 1.0500604616494615)
 ("chudnovsky:50:500:50:1000" . 1.115409983742645)
 ("slatex:500" . 1.0002570334324394)
 ("scheme:100000" . 1.0390531892971318)
 ("quicksort:10000:2500" . 1.0098428078516584)
 ("primes:1000:10000" . 1.06437827292514)
 ("peval:2000" . 1.024359358481343)
 ("parsing:2500" . 1.0004232513670308)
 ("paraffins:23:10" . 2.024687502614597)
 ("nqueens:13:10" . 1.0058665553469563)
 ("mazefun:11:11:10000" . 1.056194215282642)
 ("maze:20:7:10000" . 1.020543843425558)
 ("matrix:5:5:2500" . 1.0028500406404608)
 ("lattice:44:10" . 1.0)
 ("graphs:7:3" . 1.0)
 ("earley:1" . 1.0256148071738138)
 ("dynamic:500" . 1.008662479565268)
 ("conform:500" . 1.0332430727462598)
 ("compiler:2000" . 1.006956809282123)
 ("read1:2500" . 1.0564058966125223)
 ("wc:inputs/bib:50" . 1.0335552278476583)
 ("tail:50" . 1.0)
 ("cat:50" . 1.0263527061380673)
 ("sum1:25" . 1.0638438694063255)
 ("string:500000:100" . 1.1084001200578586)
 ("array1:1000000:500" . 1.0547700539059255)
 ("ack:3:12:2" . 1.0)
 ("simplex:1000000" . 1.021845418562125)
 ("ray:50" . 1.0558263145762616)
 ("pnpoly:1000000" . 1.0598933662254997)
 ("pi:50:500:50:100" . 1.0211985475879175)
 ("nucleic:50" . 1.0313190698159154)
 ("mbrotZ:75:1000" . 1.0191939711368345)
 ("mbrot:75:1000" . 1.0325883765897468)
 ("fft:65536:100" . 1.1023483002887104)
 ("sumfp:1000000.0:500" . 1.0794299746553448)
 ("sum:10000:200000" . 1.063704305941153)
 ("fibfp:35.0:10" . 1.1160079648284265)
 ("fibc:30:10" . 1.0)
 ("fib:40:5" . 1.0533185743228644)
 ("ctak:27:16:8:1" . 1.2839324786349615)
 ("cpstak:40:20:11:1" . 1.0290465857280968)
 ("ntakl:40:20:12:1" . 1.017152038958873)
 ("takl:40:20:12:1" . 1.0008854776027978)
 ("tak:40:20:11:1" . 1.0077102329273817)
 ("triangl:22:1:50" . 1.0435679627887324)
 ("puzzle:1000" . 1.0006869727744467)
 ("divrec:1000:1000000" . 1.0)
 ("diviter:1000:1000000" . 1.0496228639946887)
 ("destruc:600:50:4000" . 1.0446502508269544)
 ("deriv:10000000" . 1.0901526807172006)
 ("browse:2000" . 1.0))

=== Guileregular Geometric Mean slowdown (successful tests / total tests) ===

1.0504373210343294 (112 / 114)

Actual full results from two runs:

=== Guiletuned times ===

(("ack:3:12:2" "2.85671086")
 ("ack:3:12:2" "2.920076389")
 ("array1:1000000:500" "2.719338434")
 ("array1:1000000:500" "2.630303504")
 ("browse:2000" "4.653660319")
 ("browse:2000" "5.118496161")
 ("bv2string:1000:1000:100" "1.433438423")
 ("bv2string:1000:1000:100" "1.386500303")
 ("cat:50" "10.334967974")
 ("cat:50" "10.407612189")
 ("chudnovsky:50:500:50:1000" "0.362723212")
 ("chudnovsky:50:500:50:1000" "0.371314469")
 ("compiler:2000" "2.14676404")
 ("compiler:2000" "2.355796491")
 ("conform:500" "4.878185941")
 ("conform:500" "4.834137994")
 ("cpstak:40:20:11:1" "17.407945755")
 ("cpstak:40:20:11:1" "17.213716706")
 ("ctak:27:16:8:1" "13.296419091")
 ("ctak:27:16:8:1" "13.101386139")
 ("deriv:10000000" "6.006358226")
 ("deriv:10000000" "6.160541397")
 ("destruc:600:50:4000" "2.524561809")
 ("destruc:600:50:4000" "2.585279527")
 ("diviter:1000:1000000" "4.459944493")
 ("diviter:1000:1000000" "4.655874665")
 ("divrec:1000:1000000" "6.71596458")
 ("divrec:1000:1000000" "6.722703389")
 ("dynamic:500" "3.525123929")
 ("dynamic:500" "3.809416833")
 ("earley:1" "4.054948659")
 ("earley:1" "4.260803481")
 ("equal" "ULIMITKILLED")
 ("equal" "ULIMITKILLED")
 ("fft:65536:100" "2.635766227")
 ("fft:65536:100" "2.509186252")
 ("fib:40:5" "4.193038108")
 ("fib:40:5" "4.202893409")
 ("fibc:30:10" "40.788333173")
 ("fibc:30:10" "36.494392282")
 ("fibfp:35.0:10" "9.395625366")
 ("fibfp:35.0:10" "9.67364254")
 ("gcbench:20:1" "0.99502713")
 ("gcbench:20:1" "1.014673477")
 ("graphs:7:3" "12.370817417")
 ("graphs:7:3" "13.124503659")
 ("lattice:44:10" "6.197259938")
 ("lattice:44:10" "6.154507367")
 ("matrix:5:5:2500" "3.641334999")
 ("matrix:5:5:2500" "3.73835108")
 ("maze:20:7:10000" "1.613933494")
 ("maze:20:7:10000" "1.61592533")
 ("mazefun:11:11:10000" "3.749008984")
 ("mazefun:11:11:10000" "3.737740216")
 ("mbrot:75:1000" "19.750189296")
 ("mbrot:75:1000" "19.153698506")
 ("mbrotZ:75:1000" "20.612462381")
 ("mbrotZ:75:1000" "21.07964648")
 ("mperm:20:10:2:1" "9.617642771")
 ("mperm:20:10:2:1" "9.281691405")
 ("nboyer:5:1" "1.872344958")
 ("nboyer:5:1" "1.925542129")
 ("nqueens:13:10" "6.834513689")
 ("nqueens:13:10" "6.715906809")
 ("ntakl:40:20:12:1" "3.226853095")
 ("ntakl:40:20:12:1" "3.375634349")
 ("nucleic:50" "4.703444216")
 ("nucleic:50" "4.776839468")
 ("paraffins:23:10" "2.986478347")
 ("paraffins:23:10" "5.984647443")
 ("parsing:2500" "3.588179787")
 ("parsing:2500" "3.589458835")
 ("peval:2000" "4.217629667")
 ("peval:2000" "4.453879673")
 ("pi:50:500:50:100" "0.526672392")
 ("pi:50:500:50:100" "0.503771353")
 ("pnpoly:1000000" "12.105856386")
 ("pnpoly:1000000" "12.216993927")
 ("primes:1000:10000" "2.763279203")
 ("primes:1000:10000" "2.859615422")
 ("puzzle:1000" "7.432281644")
 ("puzzle:1000" "7.359046832")
 ("quicksort:10000:2500" "4.919145241")
 ("quicksort:10000:2500" "4.680086002")
 ("ray:50" "6.232801675")
 ("ray:50" "6.289500818")
 ("read1:2500" "3.322952744")
 ("read1:2500" "3.135139562")
 ("sboyer:5:1" "1.585267198")
 ("sboyer:5:1" "1.550538069")
 ("scheme:100000" "5.899088913")
 ("scheme:100000" "6.305636088")
 ("simplex:1000000" "4.74155611")
 ("simplex:1000000" "4.764164057")
 ("slatex:500" "5.5026227")
 ("slatex:500" "5.537808753")
 ("string:500000:100" "0.68799508")
 ("string:500000:100" "0.680705551")
 ("sum1:25" "3.378466719")
 ("sum1:25" "3.260874144")
 ("sum:10000:200000" "1.715693396")
 ("sum:10000:200000" "1.720665139")
 ("sumfp:1000000.0:500" "17.278236223")
 ("sumfp:1000000.0:500" "17.121625997")
 ("tail:50" "4.837888687")
 ("tail:50" "4.868554424")
 ("tak:40:20:11:1" "2.207812177")
 ("tak:40:20:11:1" "2.13063615")
 ("takl:40:20:12:1" "3.273725333")
 ("takl:40:20:12:1" "3.356636843")
 ("triangl:22:1:50" "3.13643409")
 ("triangl:22:1:50" "3.112446043")
 ("wc:inputs/bib:50" "6.354178924")
 ("wc:inputs/bib:50" "6.062416889"))

=== Guileregular times ===

(("ack:3:12:2" "2.823197595")
 ("ack:3:12:2" "2.839448474")
 ("array1:1000000:500" "2.727697517")
 ("array1:1000000:500" "2.58605893")
 ("browse:2000" "4.62347843")
 ("browse:2000" "4.710018671")
 ("bv2string:1000:1000:100" "1.436538041")
 ("bv2string:1000:1000:100" "1.480061766")
 ("cat:50" "9.705074729")
 ("cat:50" "9.45588653")
 ("chudnovsky:50:500:50:1000" "0.404585092")
 ("chudnovsky:50:500:50:1000" "0.425650091")
 ("compiler:2000" "2.161698668")
 ("compiler:2000" "2.212490501")
 ("conform:500" "4.994839595")
 ("conform:500" "4.891769316")
 ("cpstak:40:20:11:1" "17.713716404")
 ("cpstak:40:20:11:1" "17.853171003")
 ("ctak:27:16:8:1" "16.821295179")
 ("ctak:27:16:8:1" "14.463871749")
 ("deriv:10000000" "6.507820501")
 ("deriv:10000000" "5.969641332")
 ("destruc:600:50:4000" "2.637284127")
 ("destruc:600:50:4000" "2.736220883")
 ("diviter:1000:1000000" "4.681259712")
 ("diviter:1000:1000000" "4.723619732")
 ("divrec:1000:1000000" "6.673202011")
 ("divrec:1000:1000000" "6.973599182")
 ("dynamic:500" "3.555660243")
 ("dynamic:500" "4.094633639")
 ("earley:1" "4.158815387")
 ("earley:1" "4.444094437")
 ("equal" "ULIMITKILLED")
 ("equal" "ULIMITKILLED")
 ("fft:65536:100" "2.7659972")
 ("fft:65536:100" "2.556631925")
 ("fib:40:5" "4.416604922")
 ("fib:40:5" "4.295627134")
 ("fibc:30:10" "36.233365092")
 ("fibc:30:10" "42.71370317")
 ("fibfp:35.0:10" "10.485592743")
 ("fibfp:35.0:10" "9.711991969")
 ("gcbench:20:1" "1.019266679")
 ("gcbench:20:1" "1.012182828")
 ("graphs:7:3" "11.912688219")
 ("graphs:7:3" "14.273013145")
 ("lattice:44:10" "6.134356748")
 ("lattice:44:10" "6.183086766")
 ("matrix:5:5:2500" "3.579898395")
 ("matrix:5:5:2500" "3.569724535")
 ("maze:20:7:10000" "1.647089891")
 ("maze:20:7:10000" "1.692950212")
 ("mazefun:11:11:10000" "3.815654415")
 ("mazefun:11:11:10000" "3.612644682")
 ("mbrot:75:1000" "19.777886446")
 ("mbrot:75:1000" "19.78458033")
 ("mbrotZ:75:1000" "21.008097389")
 ("mbrotZ:75:1000" "21.703652079")
 ("mperm:20:10:2:1" "8.094478518")
 ("mperm:20:10:2:1" "8.861341606")
 ("nboyer:5:1" "1.924134672")
 ("nboyer:5:1" "1.832403697")
 ("nqueens:13:10" "6.755306048")
 ("nqueens:13:10" "6.783168806")
 ("ntakl:40:20:12:1" "3.282200205")
 ("ntakl:40:20:12:1" "3.295829099")
 ("nucleic:50" "4.842285137")
 ("nucleic:50" "4.695234752")
 ("paraffins:23:10" "6.046685386")
 ("paraffins:23:10" "6.098533486")
 ("parsing:2500" "3.589698489")
 ("parsing:2500" "3.738489773")
 ("peval:2000" "4.32036842")
 ("peval:2000" "4.255106956")
 ("pi:50:500:50:100" "0.514450574")
 ("pi:50:500:50:100" "0.514649509")
 ("pnpoly:1000000" "12.830916876")
 ("pnpoly:1000000" "13.164018562")
 ("primes:1000:10000" "2.921479898")
 ("primes:1000:10000" "2.744775962")
 ("puzzle:1000" "6.021742132")
 ("puzzle:1000" "6.017608199")
 ("quicksort:10000:2500" "4.71159952")
 ("quicksort:10000:2500" "4.665676166")
 ("ray:50" "6.580756022")
 ("ray:50" "6.506202092")
 ("read1:2500" "3.31197992")
 ("read1:2500" "3.279529166")
 ("sboyer:5:1" "1.496605726")
 ("sboyer:5:1" "1.491116745")
 ("scheme:100000" "6.129467149")
 ("scheme:100000" "6.622910116")
 ("simplex:1000000" "4.766683108")
 ("simplex:1000000" "4.664779057")
 ("slatex:500" "5.504037058")
 ("slatex:500" "5.634341685")
 ("string:500000:100" "0.750405621")
 ("string:500000:100" "0.677016907")
 ("sum1:25" "3.469060967")
 ("sum1:25" "3.372192131")
 ("sum:10000:200000" "1.824990453")
 ("sum:10000:200000" "1.765433455")
 ("sumfp:1000000.0:500" "18.481596316")
 ("sumfp:1000000.0:500" "17.947802847")
 ("tail:50" "4.54999235")
 ("tail:50" "4.695161894")
 ("tak:40:20:11:1" "2.147063851")
 ("tak:40:20:11:1" "2.157571204")
 ("takl:40:20:12:1" "3.25309459")
 ("takl:40:20:12:1" "3.250216596")
 ("triangl:22:1:50" "3.201959263")
 ("triangl:22:1:50" "3.068280531")
 ("wc:inputs/bib:50" "6.111397639")
 ("wc:inputs/bib:50" "5.912986045"))

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de