[Vm-dev] VM Maker: Cog-eem.158.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jun 16 20:37:16 UTC 2014


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.158.mcz

==================== Summary ====================

Name: Cog-eem.158
Author: eem
Time: 16 June 2014, 1:37:01.616 pm
UUID: 7af369da-3100-4057-b666-249b2e7efe8f
Ancestors: Cog-eem.157

Beef up the arguments to the ShootoutTests' standard
suite and update the numbers for my current machine.

=============== Diff against Cog-eem.157 ===============

Item was added:
+ ----- Method: DummyStream>>cr (in category '*Cog-Benchmarks-Shootout-platform') -----
+ cr!

Item was changed:
+ ----- Method: DummyStream>>nl (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>nl (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
  nl
  	"do nothing"!

Item was changed:
+ ----- Method: DummyStream>>print:digits: (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>print:digits: (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
  print: number digits: decimalPlaces
  	"do nothing"!

Item was changed:
+ ----- Method: DummyStream>>print:paddedTo: (in category '*Cog-Benchmarks-Shootout-platform') -----
- ----- Method: DummyStream>>print:paddedTo: (in category '*Cog-Benchmarks-Shootout-Shootout-Shootout-platform') -----
  print: number paddedTo: width
  	"do nothing"!

Item was added:
+ ----- Method: DummyStream>>space (in category '*Cog-Benchmarks-Shootout-platform') -----
+ space!

Item was added:
+ ----- Method: DummyStream>>tab (in category '*Cog-Benchmarks-Shootout-platform') -----
+ tab!

Item was added:
+ ----- Method: ShootoutTests class>>referenceArgs (in category 'benchmark scripts') -----
+ referenceArgs
+ 	^self referenceTimesAndArgsForClosureInterpreter collect: [:ea| ea last]!

Item was added:
+ ----- Method: ShootoutTests class>>referenceTimesAndArgsForClosureInterpreter (in category 'benchmark scripts') -----
+ referenceTimesAndArgsForClosureInterpreter
+ 	 "Interpreter + Closures VM (Mac Cocoa 5.7b3 27-Aug-10 >7BCAB029-A835-4D12-946D-4AB7083D2955< VMMaker versionString 4.4.9)
+ 	  on Eliot's 2012 vintage 2.2GHz Intel (quad) Core i7 MacBook Pro"
+ 	^Dictionary new
+ 		at: #nbody				put: #(40903	2000000);
+ 		at: #binarytrees		put: #(30573	17);
+ 		at: #chameneosredux	put: #(30722	2000000);
+ 		at: #threadring			put: #(9148		30000000);
+ 		yourself!

Item was changed:
  ----- Method: ShootoutTests class>>referenceTimesForClosureInterpreter (in category 'benchmark scripts') -----
  referenceTimesForClosureInterpreter
+ 	^self referenceTimesAndArgsForClosureInterpreter collect: [:ea| ea first]!
- 	 "ClosureVM (QF 1.2.23 + Closure Bytecodes) on Eliot's 2010 vintage 2.66GHz Intel Core i7 MacBook Pro"
- 	^Dictionary new
- 		at: #nbody put: 4543;
- 		at: #binarytrees put: 6944;
- 		at: #chameneosredux put: 5799;
- 		at: #threadring put: 5623;
- 		yourself
- 
- 	 "ClosureVM (QF 1.2.23 + Closure Bytecodes) on Eliot's 2006 vintage 2.16GHz Intel Core Duo MacBook Pro"
- 	"^Dictionary new
- 		at: #nbody put: 7660;
- 		at: #binarytrees put: 14417;
- 		at: #chameneosredux put: 8478;
- 		at: #threadring put: 8718;
- 		yourself"!

Item was removed:
- ----- Method: ShootoutTests class>>referenceTimesForSqueakVM (in category 'benchmark scripts') -----
- referenceTimesForSqueakVM
- 	 "Squeak VM (4.2.2beta1 + Closure Bytecodes) on Eliot's 2010 vintage 2.66GHz Intel Core i7 MacBook Pro"
- 	^Dictionary new
- 		at: #nbody put: 4917;
- 		at: #binarytrees put: 8593;
- 		at: #chameneosredux put: 5405;
- 		at: #threadring put: 3789;
- 		yourself!

Item was changed:
  ----- Method: ShootoutTests class>>runAllToDummyStreamVs: (in category 'benchmark scripts') -----
  runAllToDummyStreamVs: referenceTimes
  	"Transcript clear.
  	 self runAllToDummyStreamVs: self referenceTimesForClosureInterpreter"
  	"Transcript clear.
  	 self runAllToDummyStreamVs: self referenceTimesForSqueakVM"
+ 	| times ratios geometricMean |
- 	| stream times ratios geometricMean |
- 	stream := DummyStream new.
  	times := Array new writeStream.
  	ratios := Array new writeStream.
+ 	(self standardSuiteTo: DummyStream basicNew) do:
- 	{ [self nbody: 200000 "20000000" to: stream].
- 	   [self binarytrees: 15 to: stream].
- 	   [self chameneosredux: 260000 to: stream].
- 	   [self threadring: 10000000 to: stream] } do:
  		[:block | | benchmark reference t |
  		benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
  		reference := referenceTimes at: benchmark asSymbol.
  		Smalltalk garbageCollect.
  		times nextPut: (t := Time millisecondsToRun: block).
  		ratios nextPut: t asFloat / reference.
  		self report: block decompile printString time: t reference: reference on: Transcript].
  	geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
  	Transcript
  		nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
  		nextPutAll: '   average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
  	^times contents!

Item was changed:
  ----- Method: ShootoutTests class>>runAllToInternalStreamVs: (in category 'benchmark scripts') -----
  runAllToInternalStreamVs: referenceTimes
  	"Transcript clear.
  	 self runAllToInternalStreamVs: self referenceTimesForClosureInterpreter"
  	"Transcript clear.
  	 self runAllToInternalStreamVs: self referenceTimesForSqueakVM"
+ 	| times ratios geometricMean |
- 	| stream times ratios geometricMean |
- 	stream := (ByteString new: 10000) writeStream.
  	times := Array new writeStream.
  	ratios := Array new writeStream.
+ 	(self standardSuiteTo: (ByteString new: 10000) writeStream) do:
- 	{ [self nbody: 200000 "20000000" to: stream].
- 	   [self binarytrees: 15 to: stream].
- 	   [self chameneosredux: 260000 to: stream].
- 	   [self threadring: 10000000 to: stream] } do:
  		[:block | | benchmark reference t |
  		benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
  		reference := referenceTimes at: benchmark asSymbol.
  		Smalltalk garbageCollect.
  		times nextPut: (t := Time millisecondsToRun: block).
  		ratios nextPut: t asFloat / reference.
  		self report: block decompile printString time: t reference: reference on: Transcript].
  	geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
  	Transcript
  		nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
  		nextPutAll: '   average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
  	^times contents!

Item was changed:
  ----- Method: ShootoutTests class>>runAllToTranscriptVs: (in category 'benchmark scripts') -----
  runAllToTranscriptVs: referenceTimes
  	"Transcript clear.
  	 self runAllToTranscriptVs: self referenceTimesForClosureInterpreter"
  	"Transcript clear.
  	 self runAllToTranscriptVs: self referenceTimesForSqueakVM"
  	| times ratios geometricMean |
  	times := Array new writeStream.
  	ratios := Array new writeStream.
+ 	(self standardSuiteTo: Transcript) do:
- 	{ [self nbody: 200000 "20000000" to: Transcript].
- 	   [self binarytrees: 15 to: Transcript].
- 	   [self chameneosredux: 260000 to: Transcript].
- 	   [self threadring: 10000000 to: Transcript] } do:
  		[:block | | benchmark reference t |
  		benchmark := (self selectorForSimpleBlock: block) copyUpTo: $:.
  		reference := referenceTimes at: benchmark asSymbol.
  		Smalltalk garbageCollect.
  		times nextPut: (t := Time millisecondsToRun: block).
  		ratios nextPut: t asFloat / reference.
  		self report: block decompile printString time: t reference: reference on: Transcript].
  	geometricMean := (ratios contents inject: 1 into: [:m :n| m * n]) raisedTo: 1 / ratios position.
  	Transcript
  		nextPutAll: 'geometric mean '; print: (geometricMean roundTo: 0.001);
  		nextPutAll: '   average speedup '; print: ((geometricMean - 1 * 100) roundTo: 0.01); nextPut: $%; cr; cr; flush.
  	^times contents!

Item was added:
+ ----- Method: ShootoutTests class>>standardSuiteTo: (in category 'benchmark scripts') -----
+ standardSuiteTo: aStream
+ 	"revised up from
+ 		{ [self nbody: 200000 to: stream].
+ 		   [self binarytrees: 15 to: stream].
+ 		   [self chameneosredux: 260000 to: stream].
+ 		   [self threadring: 10000000 to: stream] }
+ 	 on 6/15/2014"
+ 	| reference nbodyCount binaryTreeDepth chameneosCount threadringCount |
+ 	reference := self referenceTimesAndArgsForClosureInterpreter.
+ 	nbodyCount := (reference at: #nbody) last.
+ 	binaryTreeDepth := (reference at: #binarytrees) last.
+ 	chameneosCount := (reference at: #chameneosredux) last.
+ 	threadringCount := (reference at: #threadring) last.
+ 	^{ [self nbody: nbodyCount to: aStream].
+ 	     [self binarytrees: binaryTreeDepth to: aStream].
+ 	     [self chameneosredux: chameneosCount to: aStream].
+ 	     [self threadring: threadringCount to: aStream] }!



More information about the Vm-dev mailing list