Informationstandard.pl - wspomaganie decyzji - link do strony głównej
wyszukiwanie:
Podziel się opinią o serwisie

WDROŻENIA

Migracja po dwóch dekadach

Bank BGŻ wymienia - zainstalowany jeszcze w latach 90. - system BankStreet. Nowa aplikacja - Flexcube - wspomaga działania centrali.

Efekt gwarantowany

Narzędzia analityczne wydatnie poprawiają skuteczność bankowych kampanii marketingowych.

ANALIZY

Czwarta fala

Rodzaj medium będącego zarówno nośnikiem, jak i sposobem przekazywania informacji, definiuje cechy organizacji gospodarczych i ma wpływ na zarządzanie przedsiębiorstwami. W epoce multimedialnych sieci zasady powstawania i funkcjonowania tych struktur ulegają zmianie.

Przyszłość to usługi i aplikacje

W obecnych warunkach ekonomicznych użytkownicy IT oczekują przede wszystkim lepiej zintegrowanych rozwiązań oraz bardziej kompleksowej obsługi.

PRODUKTY

Maszyna dla danych

Sun Oracle Database Machine v2 został oparty na sprzęcie Suna. Pierwsza wersja, która powstała jeszcze przed ogłoszeniem planów fuzji Oracle-Sun, była oparta na technologii HP.

Ma działać bez przerwy

Niektóre usługi biznesowe muszą być świadczone w trybie ciągłym, z możliwie niskim prawdopodobieństwem nieplanowanych przerw. Aby systemy IT mogły świadczyć usługi na żądanym poziomie niezawodności, muszą być do tego odpowiednio przystosowane.

popularne

Najczęściej czytane

WYWIADY

EN FACE: Sebastian Ryszard Kruk...

... pracownik naukowy Digital Enterprise Research Institute na Narodowym Uniwersytecie Irlandzkim i wykładowca na Politechnice Gdańskiej, autor pracy doktorskiej na temat semantycznych bibliotek cyfrowych, twórca start-upu Knowledge Hives i Szkoły Web 3.0.

Coraz więcej inteligencji

Rozmowa z Nickiem Pachnosem, szefem działu rozwiązań na platformę mainframe w BMC Software.

Luksusowa analiza

Stephen Brobst, Chief Technology Officer w Teradata, rozmawiał z nami na temat rynku business intelligence.

powiększ tekst >
ARCHIWUM

Rzeczywistość równoległa

3 czerwca 2008

Jakub Chabik
Informatyków czeka zmiana warsztatu, narzędzi, technologii i akcentów w budowie systemów. Całe nasze myślenie o komputerach musi ulec zmianie.


Computerworld — Ostatnie cztery dekady to w informatyce czas nieustającego wzrostu mocy obliczeniowej w rytmie wyznaczanym przez prawo Moore'a. Od pierwszych procesorów i Intela 4004, poprzez królującą w latach 90. linię Pentium, aż po współczesne Core Duo - trwa nieustający wyścig megaherców i liczby tranzystorów. W ostatnich latach zauważyliśmy jednak ciekawe zjawisko. Wzrost częstotliwości w zasadzie zatrzymał się około 3 GHz. Producenci - Intel, AMD, Sun - konkurują na innych polach: zestawu instrukcji, rozmiaru pamięci podręcznej (cache) oraz liczby rdzeni. Dlaczego właściwie tak się dzieje? Dlaczego bariera 3 GHz okazuje się tak trudna do przeskoczenia?

Przyczyny są zasadniczo dwie: ciepło oraz czysto fizyczne ograniczenia związane z technologią półprzewodnikową i prędkością światła. A więc - ciepło wydzielane w układach scalonych opartych na krzemie od dawna przysparza coraz większych trudności - problemy z nim możemy "poczuć" przykładając rękę do otworu wentylatora w naszym komputerze domowym albo "usłyszeć", gdy komputer przenośny włącza dodatkowy wiatraczek, by ochłodzić procesor. Aby zrozumieć drugie ograniczenie, trzeba zastanowić się, co tak naprawdę znaczy 3 GHz. To 3 miliardy przełączeń zegara w ciągu sekundy. Jeden takt trwa jedynie 0,3 nanosekundy. Przez ten czas sygnał elektryczny przemieszcza się jednie o kilka centrymetrów. Czas ustalenia stanu bramki NAND wykonanej w technologii CMOS wynosi ok. jednej nanosekundy.

Widać więc, że dalsze podwyższanie częstotliwości zegarów procesora napotyka na czysto fizyczne ograniczenia, trudne do przezwyciężenia w obecnej (krzemowej) technologii. Dlatego od kilku lat rozwój architektur komputerów osobistych naśladuje ścieżkę rozwoju komputerów enterprise w kierunku powiększania liczby rdzeni procesora, nie zaś zwiększania częstotliwości zegara.

Tymczasem równoległe przetwarzanie informacji wnosi do informatyki (a w szczególności - do inżynierii oprogramowania) zupełnie nowe zagadnienia. W najbliższych latach informatyków czeka zmiana warsztatu, narzędzi, technologii oraz akcentów w budowie systemów. Zmiana ta zapewne potrwa ok. 10 lat, ale sprawi, że "na nowo zostaną rozdane karty" i wszystko na tym rynku jest możliwe.

Równoległe zagadnienia

Symbolem problemów z współbieżnością pozostaje tzw. prawo Amdahla. Mówi ono, że zdolność powiększenia mocy obliczeniowej systemu wieloprocesorowego jest istotnie ograniczona współbieżnością kodu wykonywanego przez ten system. Na przykład wykonanie na 10 procesorach programu, w którym 90% kodu może działać równolegle daje jedynie ok. pięciokrotny efektywny przyrost mocy obliczeniowej. Każdy dodatkowy procesor jest mniej efektywny, duży uzysk daje natomiast powiększanie odsetka kodu wykonywalnego równolegle.

Duża część aktualnie sprzedawanych komputerów osobistych zawiera mikroprocesory dwu- i czterordzeniowe. Jednak domowe systemy operacyjne nie zawsze potrafią w pełni je wykorzystać - stosują z reguły najprostsze możliwe rozwiązanie, alokując po prostu dany proces do danego rdzenia.

Problem zaczyna się wtedy, gdy komputer wykonuje jeden proces, za to intensywny obliczeniowo (a więc absorbujący dużą część czasu procesora) i powinien wykonać go równolegle na wielu jednostkach obliczeniowych. Jeśli wykonać test obliczeniowy na procesorze dwurdzeniowym okazuje się, że nie tylko nie działa on dwa razy szybciej od procesora jednordzeniowego, a czasami... w ogóle nie działa szybciej.

Problemy współbieżności znane są od czasów pierwszych wielozadaniowych systemów operacyjnych - czyli mniej więcej od czterdziestu lat. Także algorytmy równoległe są stare jak architektury wieloprocesorowe - czyli niewiele krócej. Na przestrzeni tego czasu dobrze opisano zagadnienia związane z wielozadaniowością. Ale niektóre kwestie (rywalizacja o dostęp, blokowanie wątków i danych, semafory, sekcje krytyczne, przesyłanie kolejek komunikatów) po raz pierwszy mają szansę zaistnieć w świecie popularnych systemów i aplikacji.

Prawo Amdahla:
P - odsetek kodu, który może być przyspieszony

S - liczba równoległych jednostek obliczeniowych

Przykładowe wartości:
P=0, 9; S=4; wynik: 3,1
P=0, 5; S=16; wynik: 1,9
P=0, 7; S=16; wynik: 2,9


Walka z prawem Amdahla

Aby skutecznie walczyć z prawem Amdahla (czyli skalować efektywną moc obliczeniową komputera wraz ze zwiększaniem liczby rdzeni i procesorów), trzeba zupełnie inaczej budować systemy informatyczne na poziomie algorytmów i danych.

Klasyczny przykład ilustrujący inny paradygmat programowania to sumowanie zbioru liczb - zagadnienie powszechne niemal we wszystkich zastosowaniach, ale przede wszystkim w przetwarzaniu danych na potrzeby systemów finansowo-księgowych i szeroko pojętego ERP. W "normalnym" (tj. jednowątkowym) programowaniu zagadnienie takie realizowane jest przez sekwencyjne dodawanie kolejnych wielkości i utrzymywanie sumy kroczącej: pierwsza plus druga, dodać trzecia, dodać czwarta, itd. Tak napisanego algorytmu nie da się zrównoleglić, a tym samym dodanie dodatkowych procesorów nie przysporzy wydajności komputerowi, który realizuje takie zadanie.

Trzeba zastosować inne podejście: zbiór liczb podzielić na mniejsze części, każdy z procesorów wykona dodawanie swojego podzbioru, a następnie dodane zostaną wyniki każdego dodawania. Wszystko brzmi prosto do momentu, gdy zdamy sobie sprawę, że całe zadanie będzie wykonane tak szybko jak najwolniejszy z "kawałków". Co jeśli do dodawania zaangażowaliśmy 4 rdzenie, 3 już dawno ("dawno" w rozumieniu czasu mikroprocesora, oczywiście) zakończyły swoje zadanie, a czwarty dalej liczy? Decyzja, który robi co, podejmowana jest na początku - od niej więc zależy ostateczna wydajność całego algorytmu.

Jeszcze lepszym pomysłem jest zastosowanie bibliotek, w których podstawowe problemy zostały rozwiązane przez specjalistów od programowania równoległego i zamknięte w postaci gotowych do wykorzystania bibliotek algorytmów, uwzględniających architektury wielordzeniowe i wieloprocesorowe. Problem polega na tym, że takie biblioteki dostępne są na razie głównie na architektury superkomputerów, a ich ceny przeciętnego użytkownika komputera (a nawet przeciętnego producenta oprogramowania) przyprawiłyby o palpitację serca.

Problem odpowiedniego podziału zadań to dopiero pierwsze z wyzwań programowania równoległego. Drugie, ogromne zagadnienie, to dostęp do danych. Każdy, kto kiedykolwiek programował aplikacje bazodanowe, zetknął się z pojęciem blokad ("locków") na danych. Równoległy zapis do danych zawsze stwarza ryzyko niespójności i sposobem radzenia sobie z tym problemem jest blokowanie danych na czas zapisu i zarządzanie blokadami.
Wystaw ocenę:
   Średnia ocena (liczba głosów: 0)
wydrukuj wydrukuj wyslij do znajomegowyślij do znajomego

Komentarze

Ten artykuł nie ma jeszcze żadnych komentarzy. Twój może być pierwszy...