Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Journal of koobla (6274)

Wednesday October 12, 2005
01:12 AM

ARM Parrot benchmarks II

A little bit more detail: Parrot 0.3.0

ps
1803 root        300 S   time ./parrot examples/benchmarks/primes2.pasm
1804 root       4476 R   ./parrot examples/benchmarks/primes2.pasm
1805 root       4476 S   ./parrot examples/benchmarks/primes2.pasm
1806 root       4476 S   ./parrot examples/benchmarks/primes2.pasm
1807 root       4476 S   ./parrot examples/benchmarks/primes2.pasm

root@tinypxa263:/var/tmp/parrot-0.3.0# time ./parrot examples/benchmarks/primes2.pasm
N primes calculated to 5000 is 670
last is: 4999
57.10user 33.41system 1:31.05elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+0minor)pagefaults 0swaps

Perl 5.8.4:

ps
1817 root        300 S   time perl examples/benchmarks/primes2.pl
1818 root       1672 R   perl examples/benchmarks/primes2.pl

root@tinypxa263:/var/tmp/parrot-0.3.0# time perl examples/benchmarks/primes2.pl
N primes calculated to 5000 is 670
last is: 4999
76.65user 109.20system 3:06.27elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+0minor)pagefaults 0swaps

C compiled:

root@tinypxa263:/var/tmp/parrot-0.3.0/examples/benchmarks# gcc primes2.c -o primes2
time root@tinypxa263:/var/tmp/parrot-0.3.0/examples/benchmarks# time primes2
N primes calculated to 10000 is 1230
last is: 9973
13.53user 0.03system 0:13.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+0minor)pagefaults 0swaps

Tuesday October 11, 2005
06:25 AM

ARM compile environment

...as a short note for myself - to get compilers up and running, I needed to install gcc cpp g++ perl glibc-dev linux-libc-headers glibc-extra* binutils (for as(!)) make
06:21 AM

ARM Parrot benchmarks

Started running some basic benchmarks:

root@tinypxa263:/var/tmp/parrot-0.3.0# uptime ; ./parrot examples/benchmarks/primes2.pasm  ; uptime
00:15:25 up 15 min, load average: 0.34, 0.28, 0.20
N primes calculated to 5000 is 670
last is: 4999
00:16:55 up 16 min, load average: 0.85, 0.47, 0.27
root@tinypxa263:/var/tmp/parrot-0.3.0# uptime ; perl examples/benchmarks/primes2.pl ; uptime
00:17:14 up 17 min, load average: 0.60, 0.43, 0.26
N primes calculated to 5000 is 670
last is: 4999
00:20:20 up 20 min, load average: 0.97, 0.69, 0.39

...so Parrot 0.3.0 needs 80 seconds while Perl 5.8.4 needs 186 seconds -- a good gain.

04:04 AM

Parrot on ARM platform

Finally, I made it and got Parrot 0.3.0 compiled and running on my XScale board. As Cross-compilation is an open issue, I had to install gcc,g++,make and perl on my target first, but then things started to work out (and I compiled w/o jit). Several tests fail, as the following log shows, but I am not sure if the problem is in the testcases.

Perldoc is required, but not detected.
/usr/bin/perl5.8.4 -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;' dynclasses
make[1]: Entering directory `/var/tmp/parrot-0.3.0/dynclasses'
make[1]: Warning: File `Makefile' has modification time 3.6e+03 s in the future
make[1]: warning:  Clock skew detected.  Your build may be incomplete.
make[1]: Leaving directory `/var/tmp/parrot-0.3.0/dynclasses'
/usr/bin/perl5.8.4 -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;' compilers/pge
make[1]: Entering directory `/var/tmp/parrot-0.3.0/compilers/pge'
make[1]: Warning: File `Makefile' has modification time 3.6e+03 s in the future
make[1]: Nothing to be done for `all'.
make[1]: warning:  Clock skew detected.  Your build may be incomplete.
make[1]: Leaving directory `/var/tmp/parrot-0.3.0/compilers/pge'
/usr/bin/perl5.8.4 t/harness --gc-debug --running-make-test  t/op/*.t t/pmc/*.t t/run/*.t t/native_pbc/*.t imcc/t/*/*.tt/library
/*.t t/dynclass/foo.t t/dynclass/g*.t t/examples/*.t t/p6rules/*.t \
        t/run/*.t t/src/*.t t/perl/*.t t/tools/*.t
00:11:09 up 10 min, load average: 0.50, 0.37, 0.22
t/op/00ff-dos..................ok
t/op/00ff-unix.................ok
t/op /64bit.....................skipped
        all skipped: 64bit INTVAL platforms only
t/op/arithmetics...............ok
t/op/basic.....................ok
t/op /bitwise................... 00:12:09 up 11 min, load average: 0.81, 0.48, 0.27
t/op/bitwise...................ok 2/25
t/op/bitwise...................ok 3/25
t/op/bitwise...................ok 4/25
t/op/bitwise...................ok 5/25
t/op/bitwise...................ok
t/op/calling...................ok
        2/37 skipped: arg count check disabled
t/op/comp......................ok 2/80 00:13:09 up 12 min, load average: 0.93, 0.57, 0.31
t/op/comp......................ok 76/80 00:14:09 up 13 min, load average: 1.02, 0.66, 0.35
t/op/comp......................ok
t/op/conv......................ok
t/op /debuginfo.................ok
        3/8 skipped: getline/setline changes not finished
t/op/gc........................ok
t/op/globals...................ok 2/4 00:15:10 up 14 min, load average: 1.12, 0.75, 0.40
t/op/globals...................ok
t/op/hacks.....................ok
         2/2 skipped: no universal SIGFPE handling
t/op/ifunless..................ok
t/op/info......................ok
t/op/integer...................ok
t/op/interp....................ok 7/11 00:16:10 up 15 min, load average: 1.04, 0.79, 0.44
t/op/interp....................ok
t/op/jit.......................ok
t/op /jitn...................... 00:17:10 up 16 min, load average: 1.01, 0.83, 0.47
t/op/jitn......................ok
t/op/lexicals..................ok
t/op /literal...................ok
t/op/macro.....................ok
        1/18 skipped: Await exceptions
t/op/number....................ok 12/40 00:18:10 up 17 min, load average: 1.04, 0.87, 0.50
t/op/number....................ok
t/op/random....................ok
t/op /rx........................ok
        1/23 skipped: Pending some sort of lowercasing op
t/op/spawnw....................ok
t/op/stacks.................... 00:19:10 up 18 min, load average: 1.01, 0.89, 0.53
t/op/stacks....................ok 51/56 00:20:10 up 19 min, load average: 1.00, 0.91, 0.56
t/op/stacks....................ok
        3/56 skipped: no stack limit currently
t/op/string....................ok 60/156 00:21:10 up 21 min, load average: 1.03, 0.94, 0.59
t/op/string....................ok 139/156 00:22:11 up 22 min, load average: 1.00, 0.94, 0.61
t/op/string....................ok
        7/156 skipped: various reasons
t/op/string_cclass.............ok
t/op/string_cs.................ok
t /op/stringu...................ok 9/17 00:23:11 up 23 min, load average: 1.00, 0.95, 0.63
t/op/stringu...................ok
t/op/time......................ok
t/op /trans.....................ok
t/op/types.....................ok
t/pmc/array... .................ok
t/pmc/bigint...................skipped
        all skipped: No BigInt Lib configured
t/pmc/boolean.................. 00:24:11 up 24 min, load average: 1.04, 0.97, 0.66
t/pmc/boolean..................ok
t/pmc/builtin..................ok
        2/4 skipped: bound methods - n/y
t/pmc/complex..................ok
        2/25 skipped: instantiate n/y
t/pmc/config...................ok
t/pmc/coroutine................ok
        1/12 skipped: should this really work with distinct registers
t/pmc/delegate.................ok 8/9 00:25:11 up 25 min, load average: 1.05, 0.98, 0.68
t/pmc/delegate.................ok
t/pmc/env......................ok
t/pm c/eval.....................ok
        1/14 skipped: too much old calling conventions
t/pmc/exception................ok
t/pmc/fixedbooleanarray........o k 7/11 00:26:11 up 26 min, load average: 1.01, 0.98, 0.70
t/pmc/fixedbooleanarray........ok
t/pmc/fixedfloatarray..........ok
t/pm c/fixedintegerarray........ok
t/pmc/fixedpmcarray............ok
t/pmc/fixedstr ingarray.........ok
t/pmc/float....................ok 3/44 00:27:11 up 27 min, load average: 1.03, 1.00, 0.72
t/pmc/float....................ok
t/pmc/floatvalarray............ok
t/pm c/freeze...................ok 15/26 00:28:11 up 28 min, load average: 1.01, 1.00, 0.73
t/pmc/freeze...................ok
t/pmc/globals..................ok
t/pm c/hash.....................ok 11/37 00:29:11 up 29 min, load average: 1.00, 1.00, 0.74
t/pmc/hash.....................ok
t/pmc/integer..................ok
t/pm c/intlist..................ok
t/pmc/io.......................ok 15/31 00:30:12 up 30 min, load average: 1.18, 1.06, 0.78
t/pmc/io.......................ok
        1/31 skipped: clone not finished yet
t/pmc/iter.....................ok
        1/41 skipped: N/Y: length of rest of array
t/pmc/key......................ok
t/pmc/managedstruct............ok 5/6 00:31:12 up 31 min, load average: 1.10, 1.06, 0.80
t/pmc/managedstruct............ok
t/pmc/mmd......................ok
        6/30 skipped: various reasons
t/pmc/multiarray...............ok
t/pmc/multiarray...............ok
t /pmc/multisub.................ok
t/pmc/n_arithmetics............ok
t/pmc/names pace................ok 5/15 00:32:12 up 32 min, load average: 1.08, 1.06, 0.82
t/pmc/namespace................ok
        1/15 skipped: disabled class method
t/pmc/nci......................ok 56/59 00:33:12 up 33 min, load average: 1.03, 1.05, 0.82
t/pmc/nci......................ok
t/pmc/object-meths.............ok
        2/31 skipped: various reasons
t/pmc/objects..................ok 32/62 00:34:12 up 34 min, load average: 1.05, 1.05, 0.83
t/pmc/objects..................ok
        2/62 skipped: instantiate disabled
t/pmc/orderedhash..............ok
        1/22 skipped: Mixing keyed & indexed access is broken - see ticket 33641
t/pmc/pair.....................ok
        1/3 skipped: instantiate disabled
t/pmc/perlarray................ok 11/28 00:35:12 up 35 min, load average: 1.12, 1.07, 0.85
t/pmc/perlarray................ok
t/pmc/perlhash.................ok
        1/37 skipped: no more chartype
t/pmc/perlint..................ok 13/70 00:36:13 up 36 min, load average: 1.04, 1.05, 0.85
t/pmc/perlint..................ok 39/70
#     Failed test (t/pmc/perlint.t at line 926)
t/pmc/perlint..................NOK 40#          got: '-492004.920000
# -492004.920000
# 306
# '
#     expected: '492004.920000
# 492004.920000
# 306
# '
t/pmc/perlint..................ok 66/70
t/pmc/perlint..................NOK 67#     Failed test (t/pmc/perlint.t at line 1939)
#          got: '-12
# -12.345678
# -1
# 1.234567
# -25
# 12.098765
# '
#     expected: '-12
# 12.345678
# -1
# -1.234567
# -25
# 12.098765
# '

t/pmc/perlint..................NOK 68#     Failed test (t/pmc/perlint.t at line 1996)
#          got: '-12
# -12.345678
# '
#     expected: '-12
# 12.345678
# '
t/pmc/perlint..................ok 70/70# Looks like you failed 3 tests of 70.
t/pmc/perlint..................dubious
        Test returned status 3 (wstat 768, 0x300)
DIED. FAILED tests 40, 67-68
        Failed 3/70 tests, 95.71% okay
t/pmc/perlnum..................ok 12/55 00:37:13 up 37 min, load average: 1.01, 1.04, 0.86
t/pmc/perlnum..................ok 32/55
t/pmc/perlnum..................NOK 33#     Failed test (t/pmc/perlnum.t at line 659)
#          got: '-492004.920000
# '
#     expected: '492004.920000
# '
t/pmc/perlnum..................ok 46/55
#     Failed test (t/pmc/perlnum.t at line 961)
#          got: '0
# 0
# '
#     expected: '0
# -0.000000
# '
t/pmc/perlnum..................ok 55/55# Looks like you failed 2 tests of 55.
t/pmc/perlnum..................dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 33, 47
        Failed 2/55 tests, 96.36% okay
t/pmc/perlstring...............ok 14/68
#     Failed test (t/pmc/perlstring.t at line 623)
t/pmc/perlstring...............NOK 15#          got: 'bar-2.700000
# '
#     expected: 'bar2.700000
# '
t/pmc/perlstring...............NOK 20
#     Failed test (t/pmc/perlstring.t at line 739)
#          got: '-5.430000bar
# '
#     expected: '5.430000bar
# '
t/pmc/perlstring...............ok 25/68 00:38:13 up 38 min, load average: 1.00, 1.03, 0.87
t/pmc/perlstring...............ok 68/68# Looks like you failed 2 tests of 68.
t/pmc/perlstring...............dubious
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 15, 20
        Failed 2/68 tests, 97.06% okay (less 1 skipped test: 65 okay, 95.59%)
t/pmc/perlundef................ok
t/pmc/pmc......................ok 6/24
#     Failed test (t/pmc/pmc.t at line 247)
t/pmc/pmc......................NOK 7#          got: 'ok 1
# ok 2
# ok 3
# not ok 4
# ok 5
# ok 6
# '
#     expected: 'ok 1
# ok 2
# ok 3
# ok 4
# ok 5
# ok 6
# '
t/pmc/pmc......................ok 13/24 00:39:13 up 39 min, load average: 1.00, 1.02, 0.87
t/pmc/pmc......................ok 24/24# Looks like you failed 1 test of 24.
t/pmc/pmc......................dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 7
        Failed 1/24 tests, 95.83% okay
t/pmc/prop.....................ok
t/pmc/ref......................ok
t/pm c/resizablebooleanarray....ok
t/pmc/resizablefloatarray......ok 12/17 00:40:13 up 40 min, load average: 1.06, 1.03, 0.88
t/pmc/resizablefloatarray......ok
t/pmc/resizableintegerarray....ok
t/pm c/resizablepmcarray........ok
t/pmc/resizablestringarray.....ok
t/pmc/sarray.. ................. 00:41:13 up 41 min, load average: 1.06, 1.04, 0.89
t/pmc/sarray...................ok
t/pmc/scratchpad...............ok
t/pm c/signal...................ok
        1/3 skipped: works standalone but not in test
t/pmc/string...................ok 16/35 00:42:13 up 42 min, load average: 1.28, 1.09, 0.92
t/pmc/string...................ok
        1/35 skipped: No unicode yet
t/pmc/sub......................ok 46/50 00:43:13 up 43 min, load average: 1.10, 1.07, 0.92
t/pmc/sub......................ok
t/pmc/sys......................ok
t/pm c/threads..................skipped
        all skipped: Needs COPY for argument passing
t/pmc/timer....................ok
t/pmc/tqueue...................ok
t /pmc/undef....................ok
t/run/exit.....................ok
t/native_pb c/integer...........ok
t/native_pbc/number............NOK 1
#     Failed test (t/native_pbc/number.t at line 81)
#          got: '0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# 0.000000
# nan
# '
#     expected: '1.000000
# 4.000000
# 16.000000
# 64.000000
# 256.000000
# 1024.000000
# 4096.000000
# 16384.000000
# 65536.000000
# 262144.000000
# 1048576.000000
# 4194304.000000
# 16777216.000000
# 67108864.000000
# 268435456.000000
# 1073741824.000000
# 4294967296.000000
# 17179869184.000000
# 68719476736.000000
# 274877906944.000000
# 1099511627776.000000
# 4398046511104.000000
# 17592186044416.000000
# 70368744177664.000000
# 281474976710656.000000
# 1125899906842620.000000
# '
# Looks like you failed 1 test of 1.
t/native_pbc/number............dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 1
        Failed 1/1 tests, 0.00% okay
t/native_pbc/string............ok
        1/1 skipped: string changes
imcc/t/imcpasm/cfg............. 00:44:13 up 44 min, load average: 0.99, 1.04, 0.92
imcc/t/imcpasm/cfg.............ok
imcc/t/imcpasm/opt0............ok
imcc /t/imcpasm/opt1............ok 58/73 00:45:13 up 45 min, load average: 0.99, 1.03, 0.92
imcc/t/imcpasm/opt1............ok
        1/73 skipped: constant concat N/Y
imcc/t/imcpasm/opt2............ok
        5/5 skipped: -O2 disabled
imcc/t/imcpasm/optc............ok
        6/6 skipped: PCC changes
imcc/t/imcpasm/pcc.............ok
        10/11 skipped: PCC changes
imcc/t/imcpasm/sub.............ok
imcc/t/reg/alloc...............ok
i mcc/t/reg/spill...............ok
        3/9 skipped: need variable register frame
imcc/t/syn/bsr.................ok
imcc/t/syn/clash...............ok 8/15 00:46:14 up 46 min, load average: 0.99, 1.02, 0.92
imcc/t/syn/clash...............ok
imcc/t/syn/const...............ok
imcc /t/syn/eval................ok
        7/7 skipped: changed eval semantics - see t/pmc/eval.t
imcc/t/syn/file................ok
        1/12 skipped: multiple loading not speced - failing
imcc/t/syn/keyed...............ok
        1/1 skipped: experimental
imcc/t/syn/labels..............ok
imcc/t/syn/macro............... ok 16/23 00:47:14 up 47 min, load average: 1.02, 1.02, 0.92
imcc/t/syn/macro...............ok
imcc/t/syn/namespace...........ok
imcc /t/syn/objects.............ok
imcc/t/syn/op..................ok
imcc/t/syn/pcc .................ok 16/45 00:48:14 up 48 min, load average: 1.00, 1.02, 0.92
imcc/t/syn/pcc.................ok
        2/45 skipped: need variable register frame
imcc/t/syn/pod.................ok
imcc/t/syn/scope...............ok
imc c/t/syn/tail................ok
        3/6 skipped: missing HLL :slurp syntax
t/library/data_escape..........ok
        2/14 skipped: various reasons
t/library/dumper...............ok 2/27 00:49:14 up 49 min, load average: 1.03, 1.02, 0.93
t/library/dumper...............NOK 5
#     Failed test (t/library/dumper.t at line 160)
#          got: '"array" => PerlArray (size:20) [
#     -0.100000,
#     "charlie",
#     2,
#     "hotel",
#     5,
#     "alpha",
#     -0.200000,
#     "delta",
#     4,
#     "foxtrot",
#     0.500000,
#     -0.400000,
#     1,
#     "golf",
#     0.300000,
#     3,
#     "bravo",
#     0,
#     0,
#     "echo"
# ]
# '
#     expected: '"array" => PerlArray (size:20) [
#     0.100000,
#     "charlie",
#     2,
#     "hotel",
#     5,
#     "alpha",
#     0.200000,
#     "delta",
#     4,
#     "foxtrot",
#     0.500000,
#     0.400000,
#     1,
#     "golf",
#     0.300000,
#     3,
#     "bravo",
#     0,
#     0,
#     "echo"
# ]
# '
t/library/dumper...............ok 24/27 00:50:14 up 50 min, load average: 1.01, 1.02, 0.93
t/library/dumper...............ok 27/27# Looks like you failed 1 test of 27.
t/library/dumper...............dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 5
        Failed 1/27 tests, 96.30% okay
t/library/getopt_long..........ok
t/library/md5..................ok
t/li brary/parrotlib............ok 1/6 00:51:14 up 51 min, load average: 1.00, 1.01, 0.93
t/library/parrotlib............ok
t/library/pcre.................ok
        1/1 skipped: no pcre-config
t/library/pge..................ok
t/library/sort.................o k 5/9
t/library/sort.................NOK 6#     Failed test (t/library/sort.t at line 249)
#          got: '-0.100000
# -0.200000
# -0.400000
# 0
# 0
# 0.300000
# 0.500000
# 1
# 2
# 3
# 4
# 5
# alpha
# bravo
# charlie
# delta
# echo
# foxtrot
# golf
# hotel
# '
#     expected: '0
# 0
# 0.100000
# 0.200000
# 0.300000
# 0.400000
# 0.500000
# 1
# 2
# 3
# 4
# 5
# alpha
# bravo
# charlie
# delta
# echo
# foxtrot
# golf
# hotel
# '
t/library/sort.................ok 8/9# Looks like you failed 1 test of 9.
t/library/sort.................dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 6
        Failed 1/9 tests, 88.89% okay
t/library/streams..............ok 12/20 00:52:14 up 52 min, load average: 1.00, 1.01, 0.93
t/library/streams..............ok
        2/20 skipped: broken method invocation
t/library/yaml_parser_syck.....ok
t/dynclass/foo.................ok
        1/9 skipped: No BigInt Lib configured
t/dynclass/gdbmhash............skipped
        all skipped: No gdbm library available
t/examples/japh................ok
        1/15 unexpectedly succeeded
t/p6rules/anchors..............ok 4/26 00:53:14 up 53 min, load average: 1.17, 1.05, 0.94
t/p6rules/anchors..............ok
t/p6rules/backtrack............ok 9/15 00:54:14 up 54 min, load average: 1.06, 1.04, 0.94
t/p6rules/backtrack............ok
t/p6rules/builtins.............ok 23/41 00:55:15 up 55 min, load average: 1.02, 1.03, 0.94
t/p6rules/builtins.............ok

...more to come