Spekulacyjna wielowątkowość

Spekulacja na poziomie wątków (TLS), znana również jako wielowątkowość spekulacyjna lub równoległość spekulacyjna, to technika spekulatywnego wykonywania sekcji kodu komputerowego, która ma zostać wykonana później równolegle z normalnym wykonaniem w oddzielnym niezależnym wątku . Taki wątek spekulacyjny może wymagać przyjęcia założeń dotyczących wartości zmiennych wejściowych. Jeśli okażą się one nieważne, wówczas części spekulatywnego wątku, które opierają się na tych zmiennych wejściowych, będą musiały zostać odrzucone i zgniecione. Jeśli założenia są poprawne, program może zakończyć się w krótszym czasie, pod warunkiem, że wątek będzie mógł być efektywnie zaplanowany.

Opis

TLS wyodrębnia wątki z kodu szeregowego i wykonuje je spekulacyjnie równolegle z bezpiecznym wątkiem. Wątek spekulatywny będzie musiał zostać odrzucony lub uruchomiony ponownie, jeśli jego założenia dotyczące stanu wejściowego okażą się nieważne. Jest to dynamiczna (w czasie wykonywania) równoległości , która może odkryć równoległość, której techniki równoległości statycznej (w czasie kompilacji) mogą nie wykorzystać, ponieważ w czasie kompilacji nie można zagwarantować niezależności wątków. Aby technika osiągnęła cel, jakim jest skrócenie ogólnego czasu wykonywania, musi być dostępny zasób procesora, który może być skutecznie wykonywany równolegle z głównym bezpiecznym wątkiem.

TLS zakłada optymistycznie, że dana część kodu (zwykle pętle) może być bezpiecznie wykonywana równolegle. W tym celu dzieli przestrzeń iteracji na fragmenty, które są wykonywane równolegle przez różne wątki. Monitor sprzętowy lub programowy zapewnia zachowanie semantyki sekwencyjnej (innymi słowy, wykonanie przebiega tak, jakby pętla była wykonywana sekwencyjnie). Jeśli pojawi się naruszenie zależności, ramy spekulatywne mogą zatrzymać całe równoległe wykonanie i wznowić je; zatrzymywania i ponownego uruchamiania wątków naruszających prawo oraz wszystkich ich następców, w celu zasilenia ich poprawnymi danymi; lub zatrzymać wyłącznie wątek naruszający prawo i jego następców, którzy pobrali z niego nieprawidłowe dane.

Dalsza lektura