Your timeit verb is defined as 1000 times the result of 6!:2

Could it be that you are expecting the result of 6!:2 to be milliseconds,
when it is actually already reporting seconds?

On Tue, May 7, 2013 at 12:00 PM, elton wang <[email protected]> wrote:

> Julia is a new number crunching language that claims to have near c speed.
> On their homepage there is a set of benchmark to compare Julia with
> matlab/python/R etc. I made a try to add J into the table.Please see table
> below for my results. All programs runs on a windows 64 bit machine. My
> script enclosed at the end of this message.  Welcome to improve it since I
> dont have any practical experience on J other than toy exercises.
>
> Please see http://julialang.org/ for the offical Julia benchmarks, and
> links therein for source codes of other languages. (like
> https://github.com/JuliaLang/julia/blob/master/test/perf/perf.m for the
> matlab code.)
>
>
>
> note that in the random matrix multiply test, J lags behind all other
> peers. The code I use is
>
> rand_nn =. 0 ?@$~ 2 # ]
> mp =. +/ . *
> randmatmul =. rand_nn mp rand_nn
> 1000 * 6!:2 'randmatmul 1000'
>
> I suspect that other languages use some library like BLAS for matrix
> rather than raw calculation.  Is there a way to speed up code above?
>
> results:
> in milsec Julia Matlab2013a R3.0.0 Python3.3+numpy(MKL) J801
> >fib <1 123 60 4 11
> >parse_int <1 163 10 5 7
> >mandel <1 13 230 8 47
> >quicksort <1 45 30 23 11
> >pi_sum 30 48 810 1192 64
> >rand_mat_stat 20 60 150 261 65
> >rand_mat_mul 210 216 880 90 1768
> >
> >
> >
> >benchmark code:
> >
> >timeit =. 1000 * 6!:2
> >
> >>
> >NB. double recursive fib.
> >fib =. (-&2 +&$: -&1) ^: (1&<)
> >
> >>
> >timeit 'fib 20'
> >
> >>
> >NB. parse int
> >parsintPerf =. 3 : 0
> >for. i.y do.
> >a =. ?<:2^32x
> >s =. ":a
> >b =. ".s
> >assert b = a
> >end.
> >)
> >
> >>
> >timeit 'parsintPerf 1000'
> >
> >>
> >NB. mandel
> >mandel =. 3 : 0
> >c =. y
> >m =. 0
> >for_n. i.80 do.
> >if. 2 <|y do. m =.n break. end.
> >y =. c + *:y
> >m =. n
> >end.
> >)
> >
> >>
> >assert 14628 = +/+/ mandel"0 (_2 + 0.1*i.26) j./ (_1 + 0.1*i.21)
> >timeit '+/+/ mandel"0 (_2 + 0.1*i.26) j./ (_1 + 0.1*i.21)'
> >
> >>
> >NB. quicksort
> >quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)
> >timeit 'quicksort ? 5000 $ 0'
> >
> >>
> >NB. pi sum
> >pisum =. 3 : 'for. i.500 do. +/ %*:>:i.y end.'
> >assert '1e_12 > | _1.644834071848065 + pisum 10000'
> >timeit 'pisum 10000'
> >
> >>
> >NB. random matrix multiply.
> >rand_nn =. 0 ?@$~ 2 # ]
> >mp =. +/ . *
> >randmatmul =. rand_nn mp rand_nn
> >timeit 'randmatmul 1000'
> >
> >>
> >NB. rand mat stats/
> >load 'stats/base'
> >randn_nn =. [: normalrand 2 # ]
> >trace =. [: +/ (<0 1)&|:
> >randstats =. 3 : 0
> >n =.5
> >v =. 0
> >w =. 0
> >for. i.y do.
> >a =. randn_nn n
> >b =. randn_nn n
> >c =. randn_nn n
> >d =. randn_nn n
> >P =. a,.b,.c,.d
> >Q =. (a,.b),c,.d
> >PP =. P mp |:P
> >QQ =. Q mp |:Q
> >v =.v, trace PP mp PP mp PP mp PP
> >w =. w, trace QQ mp QQ mp QQ mp QQ
> >end.
> >((stddev % mean) v), ((stddev % mean) w)
> >)
> >
> >>
> >timeit 'randstats 1000'
> >
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to