Słyszałem terminy hiperwątkowość i wielowątkowość, ale jaka dokładnie jest między nimi różnica? Jakiego rodzaju procesor Intel z nich korzysta?
Słyszałem terminy hiperwątkowość i wielowątkowość, ale jaka dokładnie jest między nimi różnica? Jakiego rodzaju procesor Intel z nich korzysta?
Odpowiedzi:
Wielowątkowość odnosi się do ogólnego zadania uruchamiania więcej niż jednego wątku wykonania w systemie operacyjnym. Wielowątkowość jest bardziej ogólnie nazywane „wieloprocesorowe”, która może zawierać wiele procesów systemowych (prosty przykład na Windows byłoby na przykład program Internet Explorer i Microsoft Word w tym samym czasie), lub może składać się z jednego procesu, który ma wiele wątków w obrębie to.
Wielowątkowość (a raczej wielowątkowość) to koncepcja oprogramowania . Praktycznie każdy procesor z pełną obsługą Turinga może wykonywać wielowątkowość, nawet jeśli komputer ma tylko jeden rdzeń procesora i ten rdzeń nie obsługuje hiperwątkowania. W celu obsługi przetwarzania wieloprocesorowego procesor przeplata wykonanie różnych wątków wykonania, wykonując jeden, potem drugi, a następnie inny, w którym system operacyjny podzieli dostępny czas na „wycinki” i da mniej więcej tyle samo czasu na każdy wątek (czas nie musi być równy, ale zazwyczaj tak się dzieje, chyba że proces zażąda wyższego priorytetu).
Zauważ, że ilekroć w danym momencie jest więcej wątków wykonania oprogramowania próbujących wykonać, niż jest dostępnych wątków wykonania sprzętowego (równoczesnego), wątki te zostaną „przeplecione” wśród dostępnych rdzeni. W przypadku „uniprocesora” (jeden rdzeń procesora bez hiperwątkowania), jeśli masz więcej niż jeden wątek oprogramowania, zawsze będąbyć przeplatanym. Jeśli masz 4-rdzeniowy procesor z hyperthreadingiem, to 8 „wątków sprzętowych”, co oznacza, że procesor może wykonać 8 jednoczesnych wątków wykonania w tym samym momencie, więc jeśli miałeś 8 wątków programowych próbujących uruchomić, wszystkie mogłyby działać jednocześnie ; ale jeśli masz 9 wątków oprogramowania, jeden z wątków sprzętowych musiałby przeplatać parę wątków (dokładna para wybranych wątków zależy od implementacji harmonogramu systemu operacyjnego).
Z drugiej strony, hyperthreading odnosi się do bardzo specyficznej technologii sprzętowej stworzonej przez firmę Intel, która pozwala pojedynczemu procesorowi na efektywniejsze przeplatanie wielu wątków. Innymi słowy, procesor z hyperthreading'em zapewni wydajność, która jest nieco większa niż procesor, który w innym przypadku byłby taki sam, ale bez hyperthreadinga, ponieważ hyperthreaded CPU będzie w stanie jednocześnie zrównoważyć dwa (czasami więcej, ale hyperthreading jest zwykle 2 sposób) wątki wykonania na danym rdzeniu.
Jednak hyperthreading jest ściśle wolniejszy niż posiadanie całkowicie oddzielnych rdzeni fizycznych, ponieważ istnieją pewne typy operacji, które mogą zakłócać zalety wydajności hyperthreading, podczas gdy jest mniej operacji, które mogą spowodować takie zdarzenie z całkowicie oddzielnymi rdzeniami.
Weźmy następujący przykład, w którym zakłada się, że „1 rdzeń” działa dokładnie tak samo we wszystkich przykładach:
Przykład 1: 2 rdzenie, bez hipertekstu.
Przykład 2: 4 rdzenie, bez hipertekstu.
Przykład 3: 2 rdzenie z hiperwątkiem.
Przykład 4: 4 rdzenie z hiperwątkiem.
W takim przypadku przykład 4 zawsze będzie najszybszy. Przykład 2 może czasami być tak szybki jak w Przykładzie 4, w przypadku obciążeń, które są wyjątkowo słabo dostosowane do korzystania z optymalizacji hiperwątkowania.
Z drugiej strony przykład 3 może czasami przy obciążeniach, w których hiperwątkowanie jest najbardziej korzystne, być prawie tak szybki jak w przykładzie 2, nawet jeśli ma o połowę mniej rdzeni fizycznych.
Przykład 1, oczywiście, będzie najwolniejszy ze wszystkich przykładów, ale czasami może być tak szybki jak w Przykładzie 3, gdy uruchamia się obciążenie słabo dostosowane do hiperwątkowości.
W rzeczywistych testach porównawczych z nowoczesnymi procesorami Intela zwykle stwierdzamy, że hiperwątkowanie prowadzi, mówiąc bardzo ogólnie, o 20% do 40% poprawy wydajności w porównaniu z brakiem hiperwątkowości (przy analizie przypadku „braku hiperwątkowania” poprzez wyłączenie funkcji hiperwątkowania w BIOS). Czasami zdarzają się obciążenia, w których wyłączenie hiperwątkowania wykazuje przewagę wydajności , ale obciążenia te mogą być rzadkie w rzeczywistym użyciu. Ale gdybym miał wybór między 4 rdzeniami z hiperwątkiem lub 8 rdzeniami, zakładając, że każdy rdzeń ma taką samą wydajność, wybrałbym 8 rdzeni procesora za każdym razem.
Wielowątkowość to termin przetwarzania równoległego na poziomie systemu operacyjnego. Procesor nie ma nic wspólnego z wielowątkowością.
Hyperthreading to koncepcja Intela, która implementuje „jednoczesne” przetwarzanie wielu wątków w jednym rdzeniu procesora. System operacyjny widzi dwa rdzenie procesora, chociaż jest tylko jeden rdzeń fizyczny.