Wrzucić nadbieg w komputerze
Technologia wielordzeniowa, łącząca dwa lub więcej rdzeni procesorowych na jednym chipie silikonowym, pozwala komputerowi wykonywać odrębne zadania w tym samym czasie, dzięki czemu wzrasta jego wydajność. Aby móc w pełni korzystać ze zwiększonej wydajności komputera, potrzebne jest odpowiednie oprogramowanie, dostosowane do technologii wielordzeniowej. Dzięki czteromilionowemu funduszowi przyznanemu przez Komisję Europejską, w ramach projektu VELOX (Zintegrowane podejście do pamięci transakcyjnej w komputerach wielordzeniowych) prowadzone są prace nad przygotowaniem takiego oprogramowania. Uczestnicy projektu wierzą, że ich oprogramowanie pozwoli zmienić zwykłe laptopy w superkomputery. Komputery wpisały się już w naszą codzienną rzeczywistość. Aby zaspokoić rosnące zapotrzebowanie na szybkość, ich producenci na całym świecie szukają sposobów na poniesienie wydajności swoich maszyn. Jednym z rozwiązań jest procesor wielordzeniowy, który wykorzystuje kilka procesorów jednocześnie do wykonywania wielu zadań. Mówiąc inaczej, to jakby dodać tłoki do silnika i zmienić go z dwucylindrowego na czterocylindrowy. Ale wstawienie szybszego silnika do komputera niekoniecznie musi być równoznaczne ze zwiększeniem jego szybkości. Większa wydajność pojawi się tylko wówczas, kiedy zaprzęgnięte do pracy zostaną nowe cylindry. Choć komputer zwiększył swoją moc dzięki otrzymaniu dodatkowych rdzeni, system operacyjny nadal funkcjonuje tak jak gdyby miał do dyspozycji tylko dwa rdzenie, zostawiając pozostałe w spokoju. Aby wykorzystać tę dodatkową moc przeliczeniową, programiści muszą przygotować instrukcje dla każdego rdzenia pracującego w zespole. W systemach jednordzeniowych kod programu wykonywany jest zasadniczo sekwencyjnie, zadanie po zadaniu. Natomiast w układach wielordzeniowych, zadania dzielone są pomiędzy rdzenie. W momencie, kiedy różne zadania chcą skorzystać z tego samego obszaru pamięci, aby uzyskać dostęp dodanych, może nastąpić nieprawidłowa synchronizacja. Wtedy dane zostają uszkodzone a system zawiesza się. Aby więc zapewnić równoczesne i płynne wykonywanie programu, dostęp do dzielonych danych musi być skoordynowany i uporządkowany. Dotychczas programiści piszący dla układów wielordzeniowych wybierali metodę blokowania poszczególnych części jądra (ang. fine-grained locking), która pozwala na równoczesną realizację wielu zadań. Jednakże tego rodzaju blokowanie sprawia, że kod staje się bardziej złożony i trudniejszy w konserwacji. Celem projektu VELOX jest opracowanie alternatywnego rozwiązania, wykorzystującego system programowania z użyciem pamięci transakcyjnej. System ten, poprzez łączenie sekwencji jednoczesnych operacji w atomowe transakcje, może pozwolić na znaczne uproszczenie tak programowania, jak i jego weryfikacji, sprawiając, że partie kodu pojawiać się będą jako sekwencyjne bez potrzeby częściowego blokowania. Transakcje zwalniają programistę z obowiązku przewidywania interakcji pomiędzy jednoczesnymi operacjami, które mogą wejść w konflikt podczas korzystania z tych samych sektorów pamięci. "Dzięki uzupełniającym się umiejętnościom poszczególnych partnerów, [projekt ten] otworzy europejskim naukowcom drogę do dalszych znaczących postępów w trwającej rewolucji, której celem jest uczynienie programowania równoległego łatwiejszym dla szerszej publiczności" - mówi Osman Unsal z Barcelońskiego Centrum Superkomputerowego (BSC), który jest liderem projektu VELOX. Mateo Valero, dyrektor BSC, przekonany jest, że "projekt VELOX jest niezbędny do tego, by jutrzejsze laptopy mogły obsługiwać dzisiejsze superaplikacje". Projekt koordynowany jest przez BSC i skupia dziewięciu partnerów, wśród których są najważniejsze organizacje badawcze i programistyczne. Są to więc instytucje akademickie, takie jak Uniwersytet Neuchâtel, Politechnika Dresdeńska, Szwajcarski Federalny Instytut Technologiczny w Lozannie, Uniwersytet w Tel Awiwie, Politechnika Chalmers oraz wiodące firmy informatyczne, jak AMD, Red Hat czy VirtualLogix SAS.