<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div><br></div>Hi David,<br><br>Thank you. <br><br>The project currently relies heavily on OSProcess and Command Shell for some tasks and I look forward to learning and integrating RemoteTask into it.<br>The hub and spoke model you suggest will fit the bill nicely too.<br><br>On Linux, it is far easier to use CommandShell for linux directory and file handling. <br><br><br>Thank you to all others who contributed to this discussion. Much appreciated.<br><br>t<br><br><br><br><br><div style="" class="zmail_extra"><br><div id="Zm-_Id_-Sgn1">---- On Wed, 11 Sep 2019 20:51:23 -0400 <b>David T. Lewis <<a target="_blank" href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>></b> wrote ----<br></div><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); padding-left: 6px; margin: 0px 0px 0px 5px;"><div>Thanks for the pointers and plugs :-)<br><br>A relevant part of OSProcess/CommandShell is RemoteTask (<a target="_blank" href="http://wiki.squeak.org/squeak/6176">http://wiki.squeak.org/squeak/6176</a>).<br><br>Cog/Spur VM users (i.e. everybody reading this) will need to redirect standard<br>input from /dev/null in order to work around a bug in the standard input<br>processing for those VMs, so e.g. "$ squeak myimage < /dev/null & "  when run<br>from a command line.<br><br>This does a reasonable job of coarse-grained multiprocessing when you want to<br>start a bunch of worker images from a single parent image, collecting output<br>frome the forked images in their parent image.<br><br>Note that processor affinity is not an issue. Just create some number of<br>forked images less than the number of cores, and your operating system will<br>do a good job of handing the CPU assignment.<br><br>Dave<br><br>On Wed, Sep 11, 2019 at 07:13:24PM -0500, Chris Muller wrote:<br>> Be sure to grab Dave Lewis' CommandLine package too, it has #forkSqueak: I<br>> think, which makes use of Linux's ability to share unchanged memory with<br>> other processes.<br>> <br>> Another option for larger-grained tasks, MaClientServer has a<br>> NetworkOrchestra, an object you can configure and then #launch -- which<br>> uses OSProcess to keep a specified number of worker images running to<br>> complete a large task.  It's utilized by its test-suite.<br>> <br>> <br>> On Wed, Sep 11, 2019 at 4:22 PM gettimothy via Squeak-dev <<br>> <a target="_blank" href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a>> wrote:<br>> <br>> > Tim<br>> ><br>> > Thanks you very much.<br>> ><br>> > I have OSProcess installed in my image for the project I have in mind and<br>> > I will do just that.<br>> ><br>> > cheers.<br>> ><br>> > t<br>> ><br>> > ---- On Wed, 11 Sep 2019 17:11:00 -0400 *tim Rowledge <<a target="_blank" href="mailto:tim@rowledge.org">tim@rowledge.org</a><br>> > <<a target="_blank" href="mailto:tim@rowledge.org">tim@rowledge.org</a>>>* wrote ----<br>> ><br>> > Load OSProcess. Try out the image spawning/forking tools. Works really<br>> > well on a Raspberry Pi so I suspect it would be even faster on bigger<br>> > machines.<br>> ><br>> > > On 2019-09-11, at 1:59 PM, Phil B <<a target="_blank" href="mailto:pbpublist@gmail.com">pbpublist@gmail.com</a>> wrote:<br>> > ><br>> > > The difference is that the JVM inherently supports multi-core at via<br>> > threads in a single VM instance while the Squeak/Cog VM's don't as they<br>> > only support 'green' threads on a single logical core. So for Cog you'd use<br>> > the core affinity tools provided at the OS level to assign affinity at the<br>> > instance level. That said, I'd suggest measuring performance with and<br>> > without processor affinity set as you might find it doesn't provide enough<br>> > benefit to be worth the hassle depending on the load characteristics.<br>> > ><br>> > > On Wed, Sep 11, 2019 at 4:27 PM gettimothy via Squeak-dev <<br>> > <a target="_blank" href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a>> wrote:<br>> > > Hi All,<br>> > ><br>> > > I have a large processing task to do that I would like to divvy up among<br>> > separate copies of an image running on their own VM instance running on a<br>> > virtual core.<br>> > ><br>> > > Processor is a Ryzen7 with 16 virtual cores.<br>> > > I figure 1 for me and 15 for separate Cog VM's<br>> > ><br>> > > I remember from decades that the JVM had a processor affinity switch.<br>> > ><br>> > ><br>> > > Is there such a thing in Cog?<br>> > ><br>> > > Thanks in advance.<br>> > ><br>> > > tty<br>> > ><br>> ><br>> > tim<br>> > --<br>> > tim Rowledge; <a target="_blank" href="mailto:tim@rowledge.org">tim@rowledge.org</a>; <a target="_blank" href="http://www.rowledge.org/tim">http://www.rowledge.org/tim</a><br>> > Strange OpCodes: RLBM: Ruin Logic Board Multiple<br>> ><br><br></div></blockquote></div><div><br></div></div><br></body></html>