On Wed, 8 Feb 2006, Leopold Toetsch wrote:

> Parrot runs the ackermann benchmark faster than C.
> 
> $ time ./parrot -Oc -C ack.pir 11
> Ack(3, 11) = 16381
> 
> real    0m0.567s
> user    0m0.559s
> sys     0m0.008s
> 
> $ time ./ack 11
> Ack(3,11): 16381
> 
> real    0m0.980s
> user    0m0.978s
> sys     0m0.002s

This looked like fun, so I tried it on Solaris/SPARC.  Alas, I didn't
have such great luck.  First, though the -C runcore made about a factor
of 2 difference in timings (gcc/SPARC), it's only only available (as
far as I can tell) with gcc.   Still, you might as well use it if you
can.

On SPARC, I found Parrot took 12 times as long:

C:  time ./ack 11
    Ack(3,11): 16381

    real    1m7.62s
    user    1m7.36s
    sys     0m0.05s

Parrot:  time ./parrot -Oc -C ack.pir 11
    Ack(3, 11) = 16381

    real    11m56.24s
    user    11m52.12s
    sys     0m0.14s


Thinking it might have something to do with the SPARC architecture,
I tried it on x86, where Parrot took 80 times as long:

C:  time ./ack 11
    Ack(3,11): 16381

    real    0m0.759s
    user    0m0.758s
    sys     0m0.002s

Parrot:  time ./parrot -Oc -C ../tmp/ack.pir 11
    Ack(3, 11) = 16381

    real    1m1.211s
    user    1m1.087s
    sys     0m0.021s

Something's obviously very goofy there, but I don't know what.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to