Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1... ) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Does anybody know if there are plans to add those primitives to StackVMs?
Thanks, Juan Vuletich
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1... ) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.php?id=7746
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Dave
Thanks, Juan Vuletich
On Wed, Feb 27, 2013 at 09:33:08AM -0500, David T. Lewis wrote:
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Sorry, dumb question. The missing primitives are:
primitiveProfileStart primitiveProfileSemaphore primitiveProfileSample primitiveProfilePrimitive
Dave
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1... ) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.php?id=7746
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Thanks for the correction. I understand that the interpreter VMs will have the primitives in the future. Thank you!
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot´s site.
Dave
Thanks, Juan Vuletich
Cheers, Juan Vuletich
Hi Juan,
On Wed, Feb 27, 2013 at 8:45 AM, Juan Vuletich (mail lists) < juanlists@jvuletich.org> wrote:
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/**Cuis/blob/master/** Cuis4WithLatestUpdates/Cuis4.**1-1619.zip?raw=truehttps://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1-1619.zip?raw=true) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.**php?id=7746http://bugs.squeak.org/view.php?id=7746
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Thanks for the correction. I understand that the interpreter VMs will have the primitives in the future. Thank you!
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot´s site.
I could be encouraged to build and add these to my site. But I wonder why you need them. What's wrong with the Cog VMs?
Dave
Thanks,
Juan Vuletich
Cheers, Juan Vuletich
On Wed, Feb 27, 2013 at 10:03 AM, Eliot Miranda eliot.miranda@gmail.comwrote:
Hi Juan,
On Wed, Feb 27, 2013 at 8:45 AM, Juan Vuletich (mail lists) < juanlists@jvuletich.org> wrote:
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/**Cuis/blob/master/** Cuis4WithLatestUpdates/Cuis4.**1-1619.zip?raw=truehttps://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1-1619.zip?raw=true) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.**php?id=7746http://bugs.squeak.org/view.php?id=7746
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to
StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Thanks for the correction. I understand that the interpreter VMs will have the primitives in the future. Thank you!
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot´s site.
I could be encouraged to build and add these to my site. But I wonder why you need them. What's wrong with the Cog VMs?
First of all, Cog doesn't do inlining; it only does good inline cacheing, including memoing whether a send is an MNU. Second, one can disable the JIT using -cogmaxlits -1 on the command line. You'll get something slower than the StackVM (because it'll be asking the jit whether methods should be jit all the time) but you should get values close to the StackVM.
Dave
Thanks,
Juan Vuletich
Cheers, Juan Vuletich
-- best, Eliot
Hi Eliot,
On Wed, Feb 27, 2013 at 10:03 AM, Eliot Miranda eliot.miranda@gmail.comwrote:
Hi Juan,
On Wed, Feb 27, 2013 at 8:45 AM, Juan Vuletich (mail lists) < juanlists@jvuletich.org> wrote:
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/**Cuis/blob/master/** Cuis4WithLatestUpdates/Cuis4.**1-1619.zip?raw=truehttps://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1-1619.zip?raw=true) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.**php?id=7746http://bugs.squeak.org/view.php?id=7746
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to
StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Thanks for the correction. I understand that the interpreter VMs will have the primitives in the future. Thank you!
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot´s site.
I could be encouraged to build and add these to my site. But I wonder why you need them. What's wrong with the Cog VMs?
First of all, Cog doesn't do inlining; it only does good inline cacheing, including memoing whether a send is an MNU. Second, one can disable the JIT using -cogmaxlits -1 on the command line. You'll get something slower than the StackVM (because it'll be asking the jit whether methods should be jit all the time) but you should get values close to the StackVM.
Thanks for the correction wrt inlining. There's nothing wrong with Cog. Cog is wonderful. Also thanks for the -cogmaxlits -1 tip. I'm sure I'll find use for it.
Let me explain my problem.
Tim's recent feedback on performance in Raspberry PI made me want to go do some profiling on a slow machine. The slowest machine I have at hand is a Thinkpad T23, Pentium III, 1.1GHz. I use a program called "Cpukiller3", that can slow it down to (for example) Raspi performance levels. Besides, I integrated AndreasSystemProfiler in Cuis, and I prefer using it. Now I need a suitable Windows VM: - CogVM: Can't run on the P-III, as it doesn't include SSE2 instructions. - StackVM: Not currently built by you. I don't know if it would require SSE2, anyway. - InterpreterVM a.k.a. ClosureVM. Currently doesn't include the new profiling primitives. Will include them, eventually. Right now, this is what I'm using, limited to less precise MessageTally. It is also what I've been using for several years to look for code to optimize in Cuis.
Additionally, wrt Cog, on 2013/1/23 you wrote: "That said there are still limitations with primitives and Cog. Currently Cog only samples "interpreter" primitives. Those primitives it implements in machine code (integer and float arithmetic, closure evaluation, at:, identityHash) are not sampled and won't show up; they will be charged to the calling method.". I'm not sure if this is a real issue. And I don't know if this limitation applies to StackVM or InterpreterVM. Can you please clarify?
Another option would be some software for that can slow down an Atom or Core processor in a reliable and predictable way, and just use Cog. So far, I couldn't find any. Suggestions welcome!
Finally, I could take the dust off my XO (300MHz Geode processor) and do profiling there. It is already slow enough, and can run Cog.
Thanks in advance, Eliot.
Dave
Thanks,
Juan Vuletich
Cheers, Juan Vuletich
-- best, Eliot
-- best, Eliot
Cheers, Juan Vuletich
On Wed, Feb 27, 2013 at 11:12:48PM -0300, Juan Vuletich wrote:
Let me explain my problem.
https://www.youtube.com/watch?v=uDUdoQY3GYc
;-)
Dave
Tim's recent feedback on performance in Raspberry PI made me want to go do some profiling on a slow machine. The slowest machine I have at hand is a Thinkpad T23, Pentium III, 1.1GHz. I use a program called "Cpukiller3", that can slow it down to (for example) Raspi performance levels. Besides, I integrated AndreasSystemProfiler in Cuis, and I prefer using it. Now I need a suitable Windows VM:
- CogVM: Can't run on the P-III, as it doesn't include SSE2 instructions.
- StackVM: Not currently built by you. I don't know if it would require
SSE2, anyway.
- InterpreterVM a.k.a. ClosureVM. Currently doesn't include the new
profiling primitives. Will include them, eventually. Right now, this is what I'm using, limited to less precise MessageTally. It is also what I've been using for several years to look for code to optimize in Cuis.
Additionally, wrt Cog, on 2013/1/23 you wrote: "That said there are still limitations with primitives and Cog. Currently Cog only samples "interpreter" primitives. Those primitives it implements in machine code (integer and float arithmetic, closure evaluation, at:, identityHash) are not sampled and won't show up; they will be charged to the calling method.". I'm not sure if this is a real issue. And I don't know if this limitation applies to StackVM or InterpreterVM. Can you please clarify?
Another option would be some software for that can slow down an Atom or Core processor in a reliable and predictable way, and just use Cog. So far, I couldn't find any. Suggestions welcome!
Finally, I could take the dust off my XO (300MHz Geode processor) and do profiling there. It is already slow enough, and can run Cog.
:D
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 11:12:48PM -0300, Juan Vuletich wrote:
Let me explain my problem.
https://www.youtube.com/watch?v=uDUdoQY3GYc
;-)
Dave
Tim's recent feedback on performance in Raspberry PI made me want to go do some profiling on a slow machine. The slowest machine I have at hand is a Thinkpad T23, Pentium III, 1.1GHz. I use a program called "Cpukiller3", that can slow it down to (for example) Raspi performance levels. Besides, I integrated AndreasSystemProfiler in Cuis, and I prefer using it. Now I need a suitable Windows VM:
- CogVM: Can't run on the P-III, as it doesn't include SSE2 instructions.
- StackVM: Not currently built by you. I don't know if it would require
SSE2, anyway.
- InterpreterVM a.k.a. ClosureVM. Currently doesn't include the new
profiling primitives. Will include them, eventually. Right now, this is what I'm using, limited to less precise MessageTally. It is also what I've been using for several years to look for code to optimize in Cuis.
Additionally, wrt Cog, on 2013/1/23 you wrote: "That said there are still limitations with primitives and Cog. Currently Cog only samples "interpreter" primitives. Those primitives it implements in machine code (integer and float arithmetic, closure evaluation, at:, identityHash) are not sampled and won't show up; they will be charged to the calling method.". I'm not sure if this is a real issue. And I don't know if this limitation applies to StackVM or InterpreterVM. Can you please clarify?
Another option would be some software for that can slow down an Atom or Core processor in a reliable and predictable way, and just use Cog. So far, I couldn't find any. Suggestions welcome!
Finally, I could take the dust off my XO (300MHz Geode processor) and do profiling there. It is already slow enough, and can run Cog.
Cheers, Juan Vuletich
On Wed, Feb 27, 2013 at 6:12 PM, Juan Vuletich juanlists@jvuletich.orgwrote:
Hi Eliot,
On Wed, Feb 27, 2013 at 10:03 AM, Eliot Miranda eliot.miranda@gmail.comwrote:
Hi Juan,
On Wed, Feb 27, 2013 at 8:45 AM, Juan Vuletich (mail lists) < juanlists@jvuletich.org> wrote:
Quoting "David T. Lewis" lewis@mail.msen.com:
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/**Cuis/blob/master/** Cuis4WithLatestUpdates/Cuis4.**1-1619.zip?raw=true<
https://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1...
)
I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Thanks,
I just added a mantis issue for this:
http://bugs.squeak.org/view.php?id=7746%3E
Eliot, can you give me a quick pointer to the primitives in Cog that need to be added to the interpreter VM? Thanks.
Does anybody know if there are plans to add those primitives to
StackVMs?
A terminology note, this issue is for the interpreter VM. The stack VM is part of Cog, and I expect that a stack VM will already contain the necessary primitives (though I did not check).
Thanks for the correction. I understand that the interpreter VMs will have the primitives in the future. Thank you!
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot愀 site.
I could be encouraged to build and add these to my site. But I wonder why you need them. What's wrong with the Cog VMs?
First of all, Cog doesn't do inlining; it only does good inline cacheing, including memoing whether a send is an MNU. Second, one can disable the JIT using -cogmaxlits -1 on the command line. You'll get something
slower
than the StackVM (because it'll be asking the jit whether methods should be jit all the time) but you should get values close to the StackVM.
Thanks for the correction wrt inlining. There's nothing wrong with Cog. Cog is wonderful. Also thanks for the -cogmaxlits -1 tip. I'm sure I'll find use for it.
Let me explain my problem.
Tim's recent feedback on performance in Raspberry PI made me want to go do some profiling on a slow machine. The slowest machine I have at hand is a Thinkpad T23, Pentium III, 1.1GHz. I use a program called "Cpukiller3", that can slow it down to (for example) Raspi performance levels. Besides, I integrated AndreasSystemProfiler in Cuis, and I prefer using it. Now I need a suitable Windows VM:
- CogVM: Can't run on the P-III, as it doesn't include SSE2 instructions.
- StackVM: Not currently built by you. I don't know if it would require
SSE2, anyway.
I certainly intended that neither of these would need SSE2, but that they would use SSE2 if available. SSE2 instructions are used in the Stack and Cog VMs for locking/atomic instructions used in things like signalling external semaphores. The code in platforms/Cross/vm/sqAtomicOps.h is supposed to fall back on non-SSE2 instructions if SSE2 is not defined (but I've not tested it recently). So try building on Windows with SSE2 not defined and you may get lucky.
In Cog, SSE2 is further used to implement fast floating-point primitives. If the processor doesn't have SSE2 the Cog doesn't generate the primitives. So the thing to try is building the current sources but deleting -msse2 from the line in cygwinbuild/Makefile:
CFLAGS:= $(INCLUDEPATH) -msse2 -ggdb2 -mwindows -mthreads -mno-cygwin -mwin32 \ -mno-rtd -mms-bitfields -mno-accumulate-outgoing-args $(OFLAGS) $(NOBUILTIN)
If you try this let me know either way. I can add the description to HowToBuild.
- InterpreterVM a.k.a. ClosureVM. Currently doesn't include the new
profiling primitives. Will include them, eventually. Right now, this is what I'm using, limited to less precise MessageTally. It is also what I've been using for several years to look for code to optimize in Cuis.
Additionally, wrt Cog, on 2013/1/23 you wrote: "That said there are still limitations with primitives and Cog. Currently Cog only samples "interpreter" primitives. Those primitives it implements in machine code (integer and float arithmetic, closure evaluation, at:, identityHash) are not sampled and won't show up; they will be charged to the calling method.". I'm not sure if this is a real issue. And I don't know if this limitation applies to StackVM or InterpreterVM. Can you please clarify?
Another option would be some software for that can slow down an Atom or Core processor in a reliable and predictable way, and just use Cog. So far, I couldn't find any. Suggestions welcome!
Finally, I could take the dust off my XO (300MHz Geode processor) and do profiling there. It is already slow enough, and can run Cog.
Thanks in advance, Eliot.
Dave
Thanks,
Juan Vuletich
Cheers, Juan Vuletich
-- best, Eliot
-- best, Eliot
Cheers, Juan Vuletich
On Wed, Feb 27, 2013 at 10:03:08AM -0800, Eliot Miranda wrote:
Hi Juan,
On Wed, Feb 27, 2013 at 8:45 AM, Juan Vuletich (mail lists) < juanlists@jvuletich.org> wrote:
Let me restate, then. Does anybody know if there are recent StackVMs precompiled for major platforms? I could not find any at Eliot?s site.
I could be encouraged to build and add these to my site. But I wonder why you need them. What's wrong with the Cog VMs?
I think the only "problem" is that they are too fast ;-) Juan is flushing out some performance issues in the image by running on slow hardware with a non-optimized VM.
Dave
On Wed, Feb 27, 2013 at 08:19:20AM -0300, Juan Vuletich (mail lists) wrote:
Hi Folks,
In Cuis 4.1 ( https://github.com/jvuletich/Cuis/blob/master/Cuis4WithLatestUpdates/Cuis4.1... ) I included AndreasSystemProfiler. But sometimes it is good to use a StackVM for profiling, to avoid Cog inlining and get results that are easier to follow.
The Mac and Windows VMs referenced from squeakVM.org don't include the required primitives. The only VMs with those primitives I found are CogVMs from Eliot's site.
Does anybody know if there are plans to add those primitives to StackVMs?
FWIW, I have been trying to add this to the interpreter VM. Adding the necessary primitives is straightforward, just adopt the necessary primitives in InterpreterPrimitives from Cog and adapt them to the trunk platform sources. But there is additional support needed in the interpreter to signal the image at appropriate times to collect profiling data, and this is a bit less trivial. I don't know if I'll have a working implementation any time soon, but I'm trying, and I'll probably follow up with a few dumb questions on vm-dev as to how it's supposed to work.
Dave
vm-dev@lists.squeakfoundation.org