Hello, all-
I've written a relatively long-running search program (started it yesterday afternoon, and it was still chugging away when I left the house this morning). I can leave it going indefinitely on my desktop PC, but I noticed in the task manager that the Squeak process was using exactly 50% of available CPU. This remains the same regardless of whether the VM preference for "reduce CPU usage" is checked. In the image itself, the "higherPerformance" preference is checked. (This is under Squeak 3.9 on a WinXP machine. If I remember correctly, the CPU itself is one of the vintage 2005 hyperthreading Intel chips.) Is there a way to tell the VM to hog the CPU? Failing that, would there be any significant reason *not* to start a second Squeak session to run another such job at the same time? (= Thanks, -Sam Livingston-Gray comp.sci. senior, Portland State University |
Check if you have a CPU with Hyperthreading. On Windows, that behaves
like a dual-core machine, so 50% CPU is simply the max you get for any single thread. Cheers, - Andreas Sam Livingston-Gray wrote: > Hello, all- > > I've written a relatively long-running search program (started it > yesterday afternoon, and it was still chugging away when I left the > house this morning). I can leave it going indefinitely on my desktop > PC, but I noticed in the task manager that the Squeak process was using > exactly 50% of available CPU. This remains the same regardless of > whether the VM preference for "reduce CPU usage" is checked. In the > image itself, the "higherPerformance" preference is checked. > > (This is under Squeak 3.9 on a WinXP machine. If I remember correctly, > the CPU itself is one of the vintage 2005 hyperthreading Intel chips.) > > Is there a way to tell the VM to hog the CPU? Failing that, would there > be any significant reason *not* to start a second Squeak session to run > another such job at the same time? (= > > Thanks, > -Sam Livingston-Gray > comp.sci. senior, Portland State University > > > |
In reply to this post by Sam Livingston-Gray-2
Don't think there is a hog switch, but there is no reason not to start
another Squeak. On 5/4/07, Sam Livingston-Gray <[hidden email]> wrote: > Hello, all- > > I've written a relatively long-running search program (started it > yesterday afternoon, and it was still chugging away when I left the > house this morning). I can leave it going indefinitely on my desktop > PC, but I noticed in the task manager that the Squeak process was > using exactly 50% of available CPU. This remains the same regardless > of whether the VM preference for "reduce CPU usage" is checked. In > the image itself, the "higherPerformance" preference is checked. > > (This is under Squeak 3.9 on a WinXP machine. If I remember > correctly, the CPU itself is one of the vintage 2005 hyperthreading > Intel chips.) > > Is there a way to tell the VM to hog the CPU? Failing that, would > there be any significant reason *not* to start a second Squeak > session to run another such job at the same time? (= > > Thanks, > -Sam Livingston-Gray > comp.sci. senior, Portland State University > > > |
In reply to this post by Andreas.Raab
I wondered if that might be the case. Thanks!
-Sam On May 4, 2007, at 10:42 AM, Andreas Raab wrote: > Check if you have a CPU with Hyperthreading. On Windows, that > behaves like a dual-core machine, so 50% CPU is simply the max you > get for any single thread. > > Cheers, > - Andreas > > Sam Livingston-Gray wrote: >> Hello, all- >> I've written a relatively long-running search program (started it >> yesterday afternoon, and it was still chugging away when I left >> the house this morning). I can leave it going indefinitely on my >> desktop PC, but I noticed in the task manager that the Squeak >> process was using exactly 50% of available CPU. This remains the >> same regardless of whether the VM preference for "reduce CPU >> usage" is checked. In the image itself, the "higherPerformance" >> preference is checked. >> (This is under Squeak 3.9 on a WinXP machine. If I remember >> correctly, the CPU itself is one of the vintage 2005 >> hyperthreading Intel chips.) >> Is there a way to tell the VM to hog the CPU? Failing that, would >> there be any significant reason *not* to start a second Squeak >> session to run another such job at the same time? (= >> Thanks, >> -Sam Livingston-Gray >> comp.sci. senior, Portland State University > > |
In reply to this post by Andreas.Raab
On Fri, 04 May 2007 10:42:32 -0700, Andreas Raab <[hidden email]>
wrote: > Check if you have a CPU with Hyperthreading. On Windows, that behaves > like a dual-core machine, so 50% CPU is simply the max you get for any > single thread. Most hyperthreading machines can have hyperthreading turned off as a BIOS setting - if you want a single Squeak image to run at twice the speed, you can just turn off Hyperthreading. You may notice the rest of your system getting sluggish if Squeak is running full-bore though... Later, Jon -------------------------------------------------------------- Jon Hylands [hidden email] http://www.huv.com/jon Project: Micro Raptor (Small Biped Velociraptor Robot) http://www.huv.com/blog |
On 04/05/07, Jon Hylands <[hidden email]> wrote:
> Most hyperthreading machines can have hyperthreading turned off as a BIOS > setting - if you want a single Squeak image to run at twice the speed, you > can just turn off Hyperthreading. Windows would probably report 100% CPU usage, but I doubt the CPU would go twice as fast... HT means a single core can run instructions from two threads simultaneously, not that the transistors are partitioned into two half-cores. Surely all computing units are shared among threads? -- Damien Pollet type less, do more [ | ] http://typo.cdlm.fasmz.org |
On Fri, 4 May 2007 20:35:21 +0200, "Damien Pollet"
<[hidden email]> wrote: > Windows would probably report 100% CPU usage, but I doubt the CPU > would go twice as fast... HT means a single core can run instructions > from two threads simultaneously, not that the transistors are > partitioned into two half-cores. Surely all computing units are shared > among threads? No, with hyperthreading, the BIOS basically builds two virtual processors, and each one gets half of the CPU speed. Later, Jon -------------------------------------------------------------- Jon Hylands [hidden email] http://www.huv.com/jon Project: Micro Raptor (Small Biped Velociraptor Robot) http://www.huv.com/blog |
On May 4, 2007, at 14:41 , Jon Hylands wrote: > On Fri, 4 May 2007 20:35:21 +0200, "Damien Pollet" > <[hidden email]> wrote: > >> Windows would probably report 100% CPU usage, but I doubt the CPU >> would go twice as fast... HT means a single core can run instructions >> from two threads simultaneously, not that the transistors are >> partitioned into two half-cores. Surely all computing units are >> shared >> among threads? > > No, with hyperthreading, the BIOS basically builds two virtual > processors, > and each one gets half of the CPU speed. I'm pretty sure this is not true, but more like what Damien wrote. Basically all that HT does is having a second register set so you can hold the state of two processes in the CPU at the same time. Execution units are shared. Since one process seldomly utilizes all execution units (due to "pipeline bubbles") the other process can use the free units. This simply enhances throughput, but it's not like in one process you only ever get half the speed. - Bert - |
On Fri, 4 May 2007 15:58:40 -0400, Bert Freudenberg <[hidden email]>
wrote: > I'm pretty sure this is not true, but more like what Damien wrote. > Basically all that HT does is having a second register set so you can > hold the state of two processes in the CPU at the same time. > Execution units are shared. Since one process seldomly utilizes all > execution units (due to "pipeline bubbles") the other process can use > the free units. This simply enhances throughput, but it's not like in > one process you only ever get half the speed. Okay, well perhaps I misunderstood. I know a couple years ago we did a bunch of research into this, because we were running 4-processor servers with hyperthreading in each processor, and we were running 4 VisualAge server images on each machine. By turning off Hyperthreading, we got a very significant speed increase (not quite double, but close). With hyperthreading on, we only ended up ever using 50% of the total CPU available. Later, Jon -------------------------------------------------------------- Jon Hylands [hidden email] http://www.huv.com/jon Project: Micro Raptor (Small Biped Velociraptor Robot) http://www.huv.com/blog |
On May 4, 2007, at 16:20 , Jon Hylands wrote: > On Fri, 4 May 2007 15:58:40 -0400, Bert Freudenberg > <[hidden email]> > wrote: > >> I'm pretty sure this is not true, but more like what Damien wrote. >> Basically all that HT does is having a second register set so you can >> hold the state of two processes in the CPU at the same time. >> Execution units are shared. Since one process seldomly utilizes all >> execution units (due to "pipeline bubbles") the other process can use >> the free units. This simply enhances throughput, but it's not like in >> one process you only ever get half the speed. > > Okay, well perhaps I misunderstood. I know a couple years ago we did a > bunch of research into this, because we were running 4-processor > servers > with hyperthreading in each processor, and we were running 4 VisualAge > server images on each machine. By turning off Hyperthreading, we > got a very > significant speed increase (not quite double, but close). With > hyperthreading on, we only ended up ever using 50% of the total CPU > available. Well, then I'd take your experience over Intel's marketing I guess ;) The idea actually is rather old, IIRC the Alto was 16-ways "hyperthreaded". - Bert - |
On 4-May-07, at 1:29 PM, Bert Freudenberg wrote: > > The idea actually is rather old, IIRC the Alto was 16-ways > "hyperthreaded". Even systems could be 'hyperthreaded' in a sense. The old amiga took advantage of the fairly dismal 68K architecture that meant the cpu could only access the memory bus every fourth cycle to allow the coprocessors to get their work done at almost no performance cost. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Oxymorons: Good grief |
In reply to this post by Bert Freudenberg
The TX-2 was one of the first computers to have quite a few program
counters (I think over 20) and zero-overhead taskswitching according to various signals, including I/O ones. Cheers, Alan At 01:29 PM 5/4/2007, Bert Freudenberg wrote: >On May 4, 2007, at 16:20 , Jon Hylands wrote: > >>On Fri, 4 May 2007 15:58:40 -0400, Bert Freudenberg >><[hidden email]> >>wrote: >> >>>I'm pretty sure this is not true, but more like what Damien wrote. >>>Basically all that HT does is having a second register set so you can >>>hold the state of two processes in the CPU at the same time. >>>Execution units are shared. Since one process seldomly utilizes all >>>execution units (due to "pipeline bubbles") the other process can use >>>the free units. This simply enhances throughput, but it's not like in >>>one process you only ever get half the speed. >> >>Okay, well perhaps I misunderstood. I know a couple years ago we did a >>bunch of research into this, because we were running 4-processor >>servers >>with hyperthreading in each processor, and we were running 4 VisualAge >>server images on each machine. By turning off Hyperthreading, we >>got a very >>significant speed increase (not quite double, but close). With >>hyperthreading on, we only ended up ever using 50% of the total CPU >>available. > >Well, then I'd take your experience over Intel's marketing I guess ;) > >The idea actually is rather old, IIRC the Alto was 16-ways >"hyperthreaded". > >- Bert - > > |
Free forum by Nabble | Edit this page |