Micro-thread (multi-core)

ponieważ mikroprocesory stają się coraz szybsze, głównie z powodu dodawania rdzeni co kilka miesięcy, Luka opóźnienia pamięci staje się coraz większa. Opóźnienie pamięci było kilka cykli w 1980 roku i osiąga obecnie prawie 1000 cykli. Jeśli mikroprocesor ma wystarczającą ilość rdzeni i mam nadzieję, że nie wysyła żądań do pamięci głównej w tym samym czasie, nastąpi częściowe zagregowane ukrywanie opóźnień pamięci. Niektóre rdzenie mogą być uruchamiane, podczas gdy inne czekają na odpowiedź pamięci. Nie jest to najlepsza sytuacja dla procesorów wielordzeniowych. Wysokowydajni eksperci w dziedzinie obliczeń dokładają wszelkich starań, aby wszystkie rdzenie były zajęte przez cały czas. Tak więc, jeśli każdy rdzeń jest cały czas zajęty, możliwe jest całkowite wykorzystanie całego mikroprocesora. Tworzenie wątków opartych na oprogramowaniu nie rozwiąże problemu z jednego oczywistego powodu. Przełączanie wątków kontekstowych do pamięci głównej jest dużo kosztowną operacją w porównaniu z opóźnieniem pamięci. Na przykład w kontekście silnika szerokopasmowego komórki przełączanie dowolnego wątku rdzenia zajmuje w najlepszych przypadkach 2000 mikrosekund. Niektóre techniki programowe, takie jak podwójne lub wielokrotne buforowanie, mogą rozwiązać problem opóźnienia pamięci. Mogą być one jednak używane w zwykłych algorytmach, gdzie program wie, gdzie znajduje się następny fragment danych do pobrania z pamięci; w tym przypadku wysyła żądanie do pamięci podczas przetwarzania wcześniej wymaganych danych. Jednak ta technika nie zadziała, jeśli program nie zna następnego fragmentu danych do pobrania z pamięci. Innymi słowy, nie będzie działać w algorytmach kombinatorycznych, takich jak rozciąganie drzew lub losowy ranking list. Ponadto multi-buforowanie zakłada, że opóźnienie pamięci jest stałe i może być ukryte statycznie. Jednak rzeczywistość pokazuje, że opóźnienie pamięci zmienia się z aplikacji na inną. Zależy to od ogólnego obciążenia współdzielonych zasobów mikroprocesora, np. szybkości współdzielonych rdzeni żądań pamięci.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

More: