[Oberon] ... MOD 65536

Hans Klaver hklaver at dds.nl
Mon Apr 13 19:47:13 CEST 2020


Hi Jörg,

Just now I noticed that my reply to your modification of Hennessy.Trees (below) did not make it to the list (possibly because I included a few screenprints of run times). 

So now again:

Thanks Jörg, this modification is great! 
Everything runs as it should now.

Now also in Oberon System V5 Hennessy.Mod can be used with ...MOD 65536 (sic!) in procedure Rand.
All reference output is as it should be.

And as a nice side effect of your modification the treesort benchmark runs nearly three times as fast as before:

Run times Hennessy Mm and Sort procedures in V5 (10 runs, ms):

MOD     Trees     Intmm  Mm   Quick Bubble  Tree
65535   original   983   998   900   2016   747
65536   original   984  1016   933   2017   --

65535   modified   966  1014   876   1954   647
65536   modified   970  1016   908   1971  *259*

These are all benchmarks that make use of procedure Rand. As can be seen in most of them there is no noticable difference whether 65535 of 65536 is used in the MOD expression, but sometimes there can be a huge difference. 

This is an illustration that in benchmarks it is important to consistently use the same pseudo-random generator and initial seed.

--
Hans Klaver


> Op 10 apr. 2020, om 13:20 heeft Jörg <joerg.straube at iaeth.ch> het volgende geschreven:
> 
> Hans
>  
> I did the following:
> PROCEDURE Trees* ();
>                 VAR i : LONGINT;
>                 BEGIN
>                                IF Kernel.heapLim - Kernel.heapOrg - Kernel.allocated > 160000 THEN
>                                                tInitarr();
>                                                NEW(tree); 
>                                                (* here the rest of Trees *)
>                                END;
>                                tree := NIL; Oberon.Collect(0) (* tell the GC to start after Hennessy terminated *)
>                 END Trees;
>  
> With these modifications you can take whatever random number generator you wanna use.
> DIV 65535 (wrong) or DIV 65536 (corresponds to the C original) or any other.
>  
> br
> Joerg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20200413/4b72b816/attachment.html>


More information about the Oberon mailing list