[squeak-dev] Squeak VM Speed Centre - validity and basis of improvements 5 Dec

Tim Felgentreff timfelgentreff at gmail.com
Sun Dec 25 20:36:40 UTC 2016


This gets more confusing when we look at RSqueak, because we still see
massive changes in performance there due to ongoing refactorings and
continued changes to the JIT.

I will just delete the older results.

Tim Felgentreff <timfelgentreff at gmail.com> schrieb am So., 25. Dez. 2016,
21:33:

> No, sorry, my bad. There was no change in hardware.
>
> The jumps you are seeing stem from a change in how we report our
> measurements. Before, we had scaled all benchmarks to find a number of
> iterations that took longer than 600ms on Cog and then reported the time it
> took for those to run.
>
> Now we do a first pass to find a number of iterations that take 600ms for
> each VM separately each time, and when we report we divide by the number of
> iterations. This is, for example, why we are now seeing such low numbers
> for simple loops. Before we were reporting something like a few million
> iterations, now we still run those millions of iterations, but we then
> divide to get the time each iteration took.
>
> I should probably just delete older results, because they are no longer
> comparable.
>
> And we are already running Pharo tests, the "nocounters" VM is the exact
> same Cog VM running the benchmarks in a Pharo image.
>
> Also, I should update the website to show the image version, too, because
> we update that sporadically, too.
>
> Levente Uzonyi <leves at caesar.elte.hu> schrieb am So., 25. Dez. 2016,
> 16:10:
>
> Probably the tests were run on different hardware.
>
> Levente
>
> On Sun, 25 Dec 2016, Ben Coman wrote:
>
> > On Sat, Dec 24, 2016 at 8:13 PM, Tim Felgentreff
> > <timfelgentreff at gmail.com> wrote:
> >> We run benchmarks every day on
> >> http://speed.squeak.org/.
> >
> > Reviewing at the timeline   http://speed.squeak.org/timeline/
> > I am curious about some of the performance improvements.
> >
> > Several significant improvements seem aligned with Cog commit 2016120519
> > for example AStar...
> >
> http://speed.squeak.org/timeline/#/?exe=2,4,1,5,6,7,8,9&ben=AStar&env=2&revs=50&equid=off&quarts=on&extr=on
> >
> > which seems to be "Merge pull request #105 from estebanlm/Cog"
> > https://github.com/OpenSmalltalk/opensmalltalk-vm/network
> >
> > But then also aligned with the same Cog commit, there is a
> > corresponding improvement in the rsqueak performance, for example
> > ArrayAccess...
> >
> http://speed.squeak.org/timeline/#/?exe=2,4,1,5,6,7,8,9&ben=ArrayAccess&env=2&revs=50&equid=off&quarts=on&extr=on
> >
> > ...which seems to indicate a common cause from an in-Image
> > improvement, for which between 2016120322 and 2016120519 I see "The
> > various scanFor: and scanForEmptySlotFor: implementations only need to
> > access the size of their array once."
> > * Trunk: Kernel-eem.1050.mcz  (MethodDictionary)
> >   http://forum.world.st/The-Trunk-Kernel-eem-1050-mcz-td4925618.html
> > * Trunk: System-eem.920.mcz (SystemDictionary)
> >   http://forum.world.st/The-Trunk-System-eem-920-mcz-td4925619.html
> >
> >
> > So I'm curious do the benchmarks track both Image and VM changes?
> > Perhaps it would be useful to also benchmark Pharo to control for
> > Image changes (now that its returned to the fold using the mainline
> > opensmalltalk-vm)
> >
> > Now I'm further curious, the benchmarks below see a massive jump down
> > for 2016120519 for all data series, but all results are relatively
> > very close to zero, so I wonder are these valid results?
> >  ByteStringHash
> >  ClassVarBinding
> >  Compiler
> >  EqualBytes
> >  Fib
> >  FillArray
> >  FillByteArray
> >  FillString
> >  Graphsearch
> >  HashBytes
> >  HashWords
> >  InstVarAccess
> >  IntLoop
> >  IntegerByteCodes
> >  ModularConvolutionBytes
> >  ModularConvolutionWords
> >  ModularDotProductBytes
> >  ModularDotProductWords
> >  ModularSumBytes
> >  ModularSumWords
> >  PermutationCompositionArray
> >  PermutationCompositionWords
> >  Richards
> >  Send
> >  SendPrimitive
> >  SendWithManyArguments
> >  Slopstone
> >  WideStringHash
> >
> > Here all series jump down, and the result range seems valid...
> >  FloatLoop
> >
> > Here all series jump, and the result range seems valid. Rsqueak improves
> more...
> >  ShootoutSpectraNorm
> >
> > Here cog32, cog64 & rsqueakvm32 have a small jump down, but its is
> > very close to zero, so are they valid?  rsqueakvm64 shows no change...
> >  Blowfish
> >
> > Here only Cog jumps down, RSqueak stays much higher, seems valid..
> >  OrderedCollectionRandomInsert
> >  Nbody
> >
> > Here only Cog jumps down, RSqueak being already pretty low. The
> > results seem valid
> >  AStar
> >  ArrayAccess
> >  BinaryTree
> >  BitBltExampleOne
> >  DeltaBlue
> >  DoesNotUnderstand
> >  Json
> >  Mandala
> >  MandelbrotIterative1Thread
> >  MandelbrotIterative2Thread
> >  MandelbrotIterative4Thread
> >  MandelbrotIterative8Thread
> >  MandelbrotRecursive1Thread
> >  MandelbrotRecursive2Thread
> >  MandelbrotRecursive4Thread
> >  MandelbrotRecursive8Thread
> >  OrderedCollectionInsertFirst
> >
> > Here only Cog jumps down, Rsqueak is unchanged or not present, seems
> valid...
> >  Smopstone
> >  SplayTree
> >  ToolInteraction
> >
> > Here only cog32 jumps down, cog64, rsqueakvm32 & rsqueakvm64 no
> > change, seems valid...
> >  Fannkuck
> >
> > Here RSqueak improves, Cog stays the same, seems valid...
> >  ShootoutMandelbrot3
> >  ShootoutNBody
> >
> > The follow have no significant change around 5 Dec...
> >  BitBltColorMapping  - all already low
> >  DSAGen - all already low
> >  KMeans
> >  LRUCachePrintString
> >  Mandelbrot
> >  Polymorphy
> >  RaiseToLargeNumber
> >  RenderFont
> >  ShaLongString
> >  ShootoutBinarytrees
> >  ShootoutChameneosRedux
> >  ShootoutFannkuchRedux
> >  ShootoutFasta
> >  ShootoutFastaRedux
> >  ShootoutKnucleotide
> >  ShootoutMeteor
> >  ShootoutPidigits
> >  ShootoutRegexDNA
> >  ShootoutReverseComplement
> >  ShootoutThreadring
> >
> >
> > I also see around that time on 2 Dec Fabio says "I have fixed the
> > Squeak-trunk pipeline and we finally get daily updates again." So
> > maybe there were suddenly a bundle of improvements that showed up in
> > one go - but it seems the 2016120322 build should have picked those up
> > and didn't.
> > http://forum.world.st/Squeak-trunk-images-td4925570.html
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20161225/b795a5e7/attachment.html>


More information about the Squeak-dev mailing list