Programy szybsze o 20 procent
Czy można przyspieszyć działanie naszych komputerów? Naukowcy ze Stanów Zjednoczonych twierdzą, że tak, i obiecują nam programy komputerowe szybsze o 20 proc.
Sztuka projektowania komputerów zaczęła w ostatnich latach wchodzić w ślepą uliczkę. Dalsze przyspieszanie procesorów staje się coraz trudniejsze. Wyjściem z tej sytuacji miało być postawienie na układy wielordzeniowe, czyli - mówiąc prosto - upakowanie kilku działających równocześnie procesorów w jeden układ scalony. Nie jest to jednak metoda idealna.
Wiele rdzeni nie pomaga
Aby osiągnąć przyspieszenie, działający program musi być podzielony na kilka osobnych części, tzw. wątków, z których każdy mógłby dostać osobny rdzeń i działać w tym samym czasie. Przykładowo, kiedy oglądamy film, jeden wątek może odpowiadać za wyświetlanie obrazu, drugi za odtwarzanie dźwięku, trzeci za pokazywanie napisów, itd.
Kiedy procesor jest pojedynczy, robi to wszystko jednocześnie sam, a tak naprawdę na zmianę, tylko bardzo szybko. Kiedy rdzeni procesora jest więcej, rozdzielają wątki między siebie i wykonują je jednocześnie, pilnując tylko, żeby żaden nie wyprzedził reszty.
Programy szybsze o 20 procent
Każda operacja dzieli się na dwa zasadnicze kroki: program najpierw przydziela sobie odpowiednią ilość pamięci, następnie wykonuje obliczenia, które potem w niej zapisuje i znów zajmuje się zarządzaniem pamięcią: zwalnia tę już niepotrzebną dla innych programów, lub przydziela sobie kolejną potrzebną porcję. Do tej pory traktowano te kolejne kroki łącznie.
Uniwersyteccy inżynierowie postanowili rozbić te nierozłączne do tej pory elementy i wydzielili zarządzanie pamięcią do osobnego wątku.
W nowej metodzie, kiedy wątek obliczeniowy potrzebuje nowej pamięci lub może zwolnić aktualnie używaną, informuje po prostu drugi wątek - zarządzający pamięcią - co ten ma zrobić, a po skończonej operacji dostaje wiadomość zwrotną i kontynuuje swoją pracę. Jak tłumaczy dr Yan Solihin, kierujący tym projektem, pozwala to na przyspieszenie działania programów o około 20 proc.
Z pozoru nie jest to wiele, ale to przełomowe podejście do tworzenia programów otwiera nowe możliwości. Przykładowo, wątek zarządzający pamięcią może wykonywać dodatkowe operacje, jak wykrywanie anomalii w działaniu programu, czy potencjalnie niebezpiecznych zachować.
Przy zwykłym programowaniu, takie funkcje za bardzo opóźniałyby działający program, więc się ich nie stosowało. Przerzucenie ich do drugiego wątku sprawi, że będą się one wykonywać w "wolnym czasie", bez spowalniania i denerwowania użytkownika.
Być może dzięki temu w niedalekiej przyszłości nasze komputery zyskają na stabilności i bezpieczeństwie.
Artur Jurgawka