|
Title: SMT Post by: ValentineSmith on September 10, 2008, 02:52:00 AM Can anyone describe a scenario where one might want to disable SMT (Simultaneous Multi-Threading)?
Please use simple language. I'm a chemist - not an engineer. Title: Re: SMT Post by: ValentineSmith on September 17, 2008, 05:23:58 PM Can anyone help me on this?
Ignore my "simple language" remark. I'll take anything. Thank you. Title: Re: SMT Post by: Michael on September 17, 2008, 11:00:47 PM The most general case is when you have a massively CPU bound process (something mathematical that needs little, read no i/o) and you have the money to pay for the individual processors.
Further, if the instruction code and the data can live mainly in the L2 cache - where two threads would force more regular cache misses - the program thread could lose several % performance. In simple language - CPU bound programs might benefit from disabling SMT, but in general business situations SMT generally increases SYSTEM throughput by 30% (i.e. individual process might be 5 to 10% slower compared to running on their own when they are completely independent of any other process) - could not keep it simple i fear. Pose your next question - and I'll get an idea of how I should proceed. Or I may just try again - to simplify the answer. Title: Re: SMT Post by: ValentineSmith on September 18, 2008, 04:42:09 PM I think I can live with that.
Thank you very large. The stuff about L2 and threads and cache misses went right over my head, though. Can anyone suggest some easy reading for me? Title: Re: SMT Post by: kimyo on September 19, 2008, 04:18:39 PM Hi
I think the simple explanation is that if your application is multi threading capable then SMT should be on. But if your application (not many these days) doses not support SMT then it should be off. So basically, correct me if I am wrong here, but if you have an app that does not support SMT (which is on by default in AIX) then would you loose upto 50% CPU usage on a dual core and upto 75% CPU usage on a quad core chip with SMT on? I think so? This would also be further effected by the amount of virtual processors you set if you are using micro-partitioning? Check out these RedBooks: AIX 5L Practical Performance Tools and Tuning Guide; http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/SG246478.html AIX 5L Practical Performance Tools and Tuning Guide; http://www.redbooks.ibm.com/redbooks/pdfs/sg246478.pdf regards Title: Re: SMT Post by: Michael on September 21, 2008, 05:57:21 PM Actually, SMT means that once core is capable of running two threads simultaneously - at the same time.
AIX sees each potential thread as a logical CPU - so when you have two processors in AIX - with SMT enabled (default) AIX schedules threads, or applicatins, spread out over 4 "cpu's". AIX is smart enough to see that when there are only as many programs running - as there are processors - to only schedule one logical CPU per processor. So you dont lose 50% usage if you only have one application. Cores, or processors, are built up from several smaller parts (scalar architecture). POWER5 has 9 components (if I remember correctly) and the POWER6 has two more. Simply put (I hope :) ), the way SMT works is: both threads want to run. If they are both using different components (mutually exclusive, or no overlap) then both instructions are executed simultaneously. Otherwise one one is run, and the other pauses. At the next cycle, the process begins again - both, or one. In practice, this means that 30% to 60% of the time two instructions can be executed - and this gives the system improvement figure quoted. Getting back to original question. In very special situations SMT might slow a particular application. Personally, I have not run into in a business situation that SMT adversely affected performance, but understand that it could be an issue with scientific applications. Basically, when in doubt, turn SMT off, and monitor. If pergormance improves - leave it off. If it gets worse, or stays the same - turn it back on. |