Hi Bill, did you run the test suite after compiling?  I have been having
problems with gcc 4.8. I haven't been able to get a passing libj, I have
tried a few distros' gcc with different optimizations. It seems to always
be overoptimizing some things. Gcc 4.7 doesn't have the issue.

On Jan 14, 2014 10:11 PM, "bill lam" <bbill....@gmail.com> wrote:
>
> I get similar result for Fibo that linux needed about 41s and this is
> strange.  I then recompiled the libj.so using gcc 4.8 -O3 switch,
> and it droped to 14s, a little bit faster than wine's 17s.
>
> I guess it depends on compiler and optimization level.
>
> Вт, 14 янв 2014, Ben Gorte - CITG писал(а):
> > With pleasure. Here are two examples. The first is from my work (image
analysis). It computes the good old Haralick texture on a 5000x5000 aerial
image. The adverb Filter uses ;. to activate TextSub at every 25th pixel
(1M times).
> >
> > ~$ ~/j701/bin/jconsole
> >    load '/home/ben/j701-user/temp/pgm.ijs'
> >
> >    CM =. 4 : '((# /.)~ y) (<"1 ~.y) } (x,x)$0'"0 2
> >    Norm =: 3 : 'y%+/,y'
> >    Contrast=: 3 : '+/, y * *:(<:#y)%~-/~i.#y'"2
> >    Con =: 3 : 'Contrast Norm (+|:) y'"2             NB. for
non-normalized non-symmetrical cm
> >
> >    TextSub =: 4 : 0                NB. texture in a sub-image
> > co =. |:,.(_1&}."1 ,: 1&}."1) y
> > cm =. x CM co
> > Con cm
> > )
> >
> >    im =: <.(%16) * pgmread '/home/ben/data/Danbi/redsub.pgm'
> > NB. Filter applies 12&F to 7x7 subimages of <.im%16, at every 5th line
and column.
> >    6!:2 'conperpix =. <.1000*12 TextSub Filter (5 5,:7 7) <.im%16'
> > 87.5534
> >
> > ~$ wine /media/Windows/Documents\ and\
Settings/bgorte/j701/bin/jconsole.exe
> > ....
> >    6!:2 'conperpix =. <.1000*12 TextSub Filter (5 5,:7 7) <.im%16'
> > 67.088
> >
> > It's a 30% speed difference.
> >
> > Here's a more drastic example. I guess it spends most of its time doing
extended precision things. The Fibo routine is activated recursively just
20 times or so. The result has over 200000 digits.
> >
> > ~$ ~/j701/bin/jconsole
> >    Fibo =: 3 : 0"0    NB. Compute large Fibonacci numbers like Fibo
1000000
> > if. y<5 do.              NB. returns (F y-1),F y
> >    ((,~<:)y){0 1 1 2 3x
> > elseif. 0=2|y do.
> >    'b c'=.Fibo -:y
> >    a=.c-b
> >    d=.c+b
> >    p=.b*a+c
> >    q=.c*b+d
> >    (q-p),q
> > elseif. do.
> >    'b c'=.Fibo -:>:y
> >    a=.c-b
> >    d=.c+b
> >    p=.b*a+c
> >    q=.c*b+d
> >    p,q-p
> > end.
> > )
> >       6!:2 'z=.{:Fibo 1000000'
> > 41.3298
> >
> >
> > ~$ wine /media/Windows/Documents\ and\
Settings/bgorte/j701/bin/jconsole.exe
> > ....
> >        6!:2 'z=.{:Fibo 1000000'
> > 15.5417
> >
> >  #":z           NB.
> > 208988
> >
> > ________________________________________
> > From: programming-boun...@forums.jsoftware.com [
programming-boun...@forums.jsoftware.com] on behalf of Michael Dykman [
mdyk...@gmail.com]
> > Sent: Tuesday, January 14, 2014 17:02
> > To: J Programming
> > Subject: Re: [Jprogramming] On benchmarking results from J programming
styles
> >
> > As the timings that you are reporting are very tiny values, we should
> > pause for a moment and consider a basic difference between those OSs.
> > Under windows, the finest-grained application timer available tick
> > 18/s; on linux that number is 1024/s. I suggest that you try some
> > longer-running verbs if you expect a fair comparison.
> >
> > On Tue, Jan 14, 2014 at 6:11 AM, Ben Gorte - CITG
> > <b.g.h.go...@tudelft.nl> wrote:
> > > Speaking about J, performance and Linux, is it true that Windows is
significantly faster? Or is there something wrong with my installation?
Also when runnning windows J under wine on my linux PC I get a better
performance than with native linux J:
> > >
> > > NB. Native Linux
> > >    JVERSION
> > > Engine: j701/2011-01-10/11:25
> > > Library: 7.01.087
> > > Platform: Linux 32
> > > Installer: j701a_linux32.sh
> > > InstallPath: /home/ben/j701
> > >    time'locs=:nudge"1 locs'
> > > 1.43086e_5
> > >    time'locs=:pfn"1 locs'
> > > 7.41384e_6
> > >    time'locs=:(pfn f.)"1 locs'
> > > 3.77003e_6
> > >    time'locs=:pfns"1 locs'
> > > 3.7135e_5
> > >
> > > NB. wine + Windows J
> > >  JVERSION
> > > Engine: j701/2011-01-10/11:25
> > > Library: 7.01.040
> > > Platform: Win 32
> > > Installer: j701a_win.exe
> > > InstallPath: z:/media/windows/documents and settings/bgorte/j701
> > >    time'locs=:nudge"1 locs'
> > > 1.09025e_5
> > >    time'locs=:pfn"1 locs'
> > > 5.56416e_6
> > >    time'locs=:(pfn f.)"1 locs'
> > > 2.88706e_6
> > >    time'locs=:pfns"1 locs'
> > > 2.77585e_5
> > >
> > > Regards,
> > > Ben
> > > ________________________________________
> > > From: programming-boun...@forums.jsoftware.com [
programming-boun...@forums.jsoftware.com] on behalf of Raul Miller [
rauldmil...@gmail.com]
> > > Sent: Monday, January 13, 2014 06:44
> > > To: Programming forum
> > > Subject: Re: [Jprogramming] On benchmarking results from J
programming styles
> > >
> > > That sounds about right.
> > >
> > > The big caution I would place on interpreting these results is: "This
> > > won't necessarily apply for games implemented in J for Linux, where I
> > > intend to rely on the SDL and byte-per-pixel graphics layouts.
> > > Nonetheless, I retain the logic here, since it's representative of a
> > > real-world design decision which directly influences performance on
> > > the slower Kestrel architecture."
> > >
> > > If J is to perform well when applied in suboptimal fashion we'll need
> > > some way of representing the code which strips out a lot of the
> > > functionality (type checks, size checks, rank handling, maybe even
> > > overflow handling?), at least for the time-critical routines. (As much
> > > as possible, hoisting redundant operations out of primitives used in
> > > bottleneck loops.)
> > >
> > > Thanks,
> > >
> > > --
> > > Raul
> > >
> > >
> > > On Sun, Jan 12, 2014 at 11:59 PM, William Tanksley, Jr
> > > <wtanksle...@gmail.com> wrote:
> > >> A friend of mine wrote the following paper describing his attempt to
> > >> characterize the differences between a few different styles of
> > >> implementing the same code in J a few different ways -- explicit,
> > >> implicit, and a few variations. He also baselined against a Forth
> > >> implementation.
> > >>
> > >> I found his writeup very interesting. What do you think?
> > >>
> > >> http://sam-falvo.github.io/2014/01/05/subroutine-performance-in-j/
> > >>
> > >> -Wm
> > >>
----------------------------------------------------------------------
> > >> For information about J forums see
http://www.jsoftware.com/forums.htm
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> >
> >
> > --
> >  - michael dykman
> >  - mdyk...@gmail.com
> >
> >  May the Source be with you.
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
> --
> regards,
> ====================================================
> GPG key 1024D/4434BAB3 2008-08-24
> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> ----------------------------------------------------------------------
> 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