2011-01-10 6 views
0

Kann mir jemand sagen, Was ist Architekturmuster oder Weg das Beste für die Verwendung von Multi Threading in High Load System? Ich habe über Multiplex-Ansatz gelesen, Gibt es noch etwas anderes? Danke.High Load System und Multithreading

Antwort

2

Ich bin nicht genau sicher, was Sie unter High Load System verstehen, aber ich nehme an, Sie meinen eine kommerzielle Serverumgebung. Der Trend für High-End-Server-Chips ist heutzutage viele replizierte Kerne, von denen jeder ein gewisses Maß an Multithreading ermöglicht. Es ist schwer zu sagen, welche Multi-Threading-Technik am besten ist, da jede von ihnen Vorteile bietet, die bei einer bestimmten Anwendungslast geeigneter sind.

Nehmen Sie die Sun UltraSPARC T1 zum Beispiel. Es verfügt über 8 Kerne, von denen jeder bis zu 4 Threads in einer einzigen gemeinsamen Pipeline unterstützen kann. Ein Kern kann ohne Verzögerung zwischen Threads wechseln. Dieser Ansatz wird als feinkörniges temporales Multithreading bezeichnet: feinkörnig, da Threads jeden Zyklus wechseln können, temporal, da Threads über Zyklen verschachtelt sind.

Ein anderer Ansatz, der als Simultaneous Multithreading (SMT) bezeichnet wird, ermöglicht es, dass Befehle aus mehreren Threads gleichzeitig in derselben Pipelinestufe liegen. Diese Technik erfordert, dass der Prozessor Superskalar ist, dh in der Lage sein, mehrere Anweisungen an die Pipeline in einem einzigen Zyklus auszugeben. Sie werden davon auf dem Servermarkt wahrscheinlich nicht so viel mitbekommen, da superskalare Prozessoren tendenziell größer und leistungshungriger sind, nicht im Einklang mit den Größenvorteilen, die Serverfarmen und Rechenzentren erfordern.