[Jprogramming] 806 beta-3 available
Michael Goodrich
michael.goodrich at gmail.com
Fri Apr 21 16:16:42 UTC 2017
All i did was delete the loop construct lines for both while/for so that
the code runs straight thru one time for the non-loop version. Then I did
1000 (6!:2) 'f tlpmcmc 1e1'
for both loop/non-loop versions to get the average elapsed time figures
reported above.
For non-loop version the passed in arg '1e1' is not used, otherwise the
while section loops 1e1 times. Inside the while loop are four 'for' loops
in sequence; the first/third are two nested 'for' loops 5x3 for a ttl of
15 the second/fourth are 3x1=3 for a ttl of 15 yielding a grand total
of 36 for loops for each while loop. The code is attached. 'tlpmcmcx.j'
is the loop code, 'tlpmcmcxx.j' is the loop-less. Regrettably this
examination revealed an asymmetry between the two version as I had
incorrectly modified an 'if' statement (now removed) to yield these updated
numbers:
J No loops | Loops. | Ratio
-----------------------------|---------------------|-------
805: 0.00179901 | 0.01162814 | 6.46
806: 0.0018808 | 0.02488977 | 13.23
-----------------------------|---------------------|-------
Ratio: 1.05 | 2.14 | 2.05
Slightly, but mostly immaterially different. I am now wondering about what
the cumulative effect of 5% elapsed time expansion in loop-less trial
between J versions means for the looping trial .
On Fri, Apr 21, 2017 at 11:29 AM, Xiao-Yong Jin <jinxiaoyong at gmail.com>
wrote:
> Can you give an example as how you changed the loops to no-loops?
> I'm just curious.
>
> > On Apr 21, 2017, at 11:04 AM, michael.goodrich at gmail.com wrote:
> >
> > Henry - regarding the neural network code I posted in wierdness #2,
> some quick and dirty timing tests:
> >
> > No loops. Loops. Ratio
> > 805: 0.00181 0.01067 5.9
> > 806: 0.00191 0.025 13
> > Ratio: 1.06 2.34. 2.21
> >
> > Loops means 10 'while' loops within which are about 20 'for' loops.
> Incredibly it seems that the presence of the loop control constructs is
> responsible for the performance degradation.
> >
> >
> >
> > Sent from my iPad
> >
> >> On Apr 20, 2017, at 20:19, Henry Rich <henryhrich at gmail.com> wrote:
> >>
> >> name =: verb define
> >> smoutput 'time at point 1: ' , ": 6!:1''
> >> NB. do something
> >> smoutput 'time at point 2: ' , ": 6!:1''
> >> NB. etc.
> >> )
> >>
> >> untested
> >>
> >> Henry Rich
> >>
> >>
> >>
> >>
> >>> On 4/20/2017 8:15 PM, Michael Goodrich wrote:
> >>> Henry
> >>>
> >>> You could save me some time if you could post a code example
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> >>
> >> ---
> >> This email has been checked for viruses by AVG.
> >> http://www.avg.com
> >>
> >> ----------------------------------------------------------------------
> >> 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
>
More information about the Programming
mailing list