Pozri sa na to ale z ineho pohladu. Ktory pristup vykona ulohu, ktora je rovnomerne rozdelena medzi 2 vlakna rychlejsie ? SMT pristup poda asi vyssi vykon, vsak ? Context switching pekne zamava s vykonom...
V ziadnom pripade sa nesnazim tvrdit, ze pocet vlaken, ktory prezentuje CPU, ze je schopny spracovat = pocet jadier.
Ak napisem "nezmyselny" program, ktory vzdy vytazi vseky ALU v jadre, tak co nastane pri SMT pri spusteni 2 instancii ? Bud sa budu instrukcie v thread0 a thread1 serializovat (t.j. v jadre so 4 ALU 2 pre thread) alebo sa bude thread0 a thread1 striedat.
Pri bulldozeri vsak podla prezentovanych informacii k ziadnemu striedaniu dochadzat nebude(Nie je na to dovod). AFAIK dekoder v bulldozer module dekoduje 4 instrukcie a obe jadra maju len po 2 ALU. Neriesim vobec otazku vykonu jadra resp. jednotlivych prispupov k spracovaniu co najvacsieho poctu vlaken "naraz"*.
Kedysi v dobe mojej "sladkej nevedomosti" som sa pustil do pisania MMO servera modelom thread-per-client (zivo si viem predstavit uskrn na tvari mnohych diskutujucich), takze dopad context switchingu mam otestovany hadam na najdebilnejsom teste aky sa len da (podotknem, ze to bezalo na 1 jadrovom systeme pod winXP

)
*"naraz" = akykolvek iny sposob od context switchingu.