Jump to content
The Dark Mod Forums

Question On Hyperthreading


Ishtvan

Recommended Posts

So at work I'm using a commercial simulation program that apparently doesn't incorporate hyperthreading. I'll run a dedicated simulation and only see 50% CPU usage. So I'm wondering: Would turnign hyperthreading off in the BIOS help this program utilize more of the CPU and hopefully run faster?

 

Please lemme know if you have any advice. It's kind've nice to be able to do stuff while it's running, but when Im running something for 8 hours straight and not at the computer I want it to use as much of the CPU as possible.

Link to comment
Share on other sites

@Dom: Oh, that good reason would be that I'm lazy. I was just hoping some random person on here would have an intimate knowledge of how hyperthreading works. :) Also, this is being run on my home computer and I don't want to screw anything up by accident.

 

@Spar: I thought maybe the reason turning it off would make it faster would be that the processor would start operating in "normal" mode, rather than reserving half of it for fake dual-processor stuff, or however it works.

Link to comment
Share on other sites

As I understand it, hyperthreading is like having two CPUs on one CPU. The operating system also sees such a CPU as if there were two present. So turning it off means that you essentially half the computing power because the second core will not be used. AFAIK there is no such thing as reserving computing power for the second half inside the CPU, but I'm not a hardware expert. Normally the OS should distribute the load on both CPUs. I don't really know the internals of Windows that good, but I think it might be that it distributes the load only over processes and not over threads. In that case, if your application is not aware of multiple CPUs it will only run on one. If Windows distributes the load on threads as well then your application might still not take advantage of it, if it does it's computing only as a single thread (like most applications work). So the only way that I can see to make your app aware of it is to make it at least threadable.

To verify this, you could write a simple testprogramm with an endless loop and then look how much CPU power it consumes. I would assume that it also would go only for 50% because it will only use one CPU. If you run this test twice it should take 100% now.

 

You can then extend this test and make it multithreaded and run the infinte loop in two thread. if the application used before 50% and now 100%, then Windows distributes over threads. In this case you can only look for another application that can split up it's calculations into multiple patches. Some renderer do this, but the application has to be written to support this of course.

Gerhard

Link to comment
Share on other sites

Do HT CPU's really have two cores though? I asked a coworker about that, and he said that it was most likely "faking" 2 cores, so some combination of the chipset BIOS and the OS software makes it act like it has 2 cores, but it does not actually. Maybe turning HT off in the bios will stop this faking operation and let a non-HT program use more of the whole processor instead of fake-dividing the processor in 2?

 

Unfortunately I can't change this app at all; it's commercial simulation software that's not open sourced. It does support "cluster" processing. I wonder if it could be hacked to view the fake "2nd core" on an HT CPU as another machine in a cluster... I dunno.

 

Btw yeah I did put it under full load in one copy and it was 50% of the CPU. I haven't tried running two copies of the app yet, but I imagine it will take up 100% as you said.

 

So I guess I could at least run 2 different simulations at the same time to save a little time.

 

You'd think these bastards would support modern CPU technology at the prices they charge for their software <_<

 

Hmm... maybe I could use the supported "clustered computing" to trick it into running 2 threads and going back and forth between for calculations. IE, cluster #1 is running on localhost, cluster #2 is a 2nd copy of the program also running on localhost (or some network mask that redirects it back to me) ... maybe.

Edited by Ishtvan
Link to comment
Share on other sites

Do HT CPU's really have two cores though?  I asked a coworker about that, and he said that it was most likely "faking" 2 cores, so some combination of the chipset BIOS and the OS software makes it act like it has 2 cores, but it does not actually.

 

That's right. I was talking from the operating system point of view where it is treated as two actual CPUs.

 

Maybe turning HT off in the bios will stop this faking operation and let a non-HT program use more of the whole processor instead of fake-dividing the processor in 2?

 

Don't know if that works, you can only test it. :)

 

Unfortunately I can't change this app at all; it's commercial simulation software that's not open sourced.  It does support "cluster" processing.  I wonder if it could be hacked to view the fake "2nd core" on an HT CPU as another machine in a cluster... I dunno.

 

Maybe you can run it in VMware then? Both machines would be treated as seperate processes and this might help speed up the overall performance in this case.

 

Btw yeah I did put it under full load in one copy and it was 50% of the CPU.  I haven't tried running two copies of the app yet, but I imagine it will take up 100% as you said.

 

Yeah. So it is as I thought that it acts like two CPUs from the application point of view. Don't know though how far this actually goes.

 

So I guess I could at least run 2 different simulations at the same time to save a little time.

 

If that is possible. Can't say as I don't know what your expectations are. If you can split the jobs up in seperate chunks, this would be a solution.

 

You'd think these bastards would support modern CPU technology at the prices they charge  for their software <_<

 

LOL.

Gerhard

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 1 reply
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
×
×
  • Create New...