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]