• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Programowanie równoległe



    Podstrony: 1 [2] [3] [4] [5]
    Przeczytaj także...
    Cell (właśc. Cell Broadband Engine Architecture) – architektura procesora opracowana przez alians STI, w skład którego wchodzą firmy Sony, Toshiba i IBM. Procesor jest wytwarzany w technologii 90, 65 i 45 nm SOI.Procesor graficzny, inaczej GPU (ang. Graphics Processing Unit) – jest główną jednostką obliczeniową znajdującą się w nowych kartach graficznych.
    Galera – komputer równoległy złożony z ponad 1000 procesorów.

    Obliczenia równoległe – forma wykonywania obliczeń, w której wiele instrukcji jest wykonywanych jednocześnie. Taka forma przetwarzania danych była wykorzystywana przez wiele lat, głównie przy wykorzystaniu superkomputerów, a szczególne zainteresowanie zyskała w ostatnich latach, z uwagi na fizyczne ograniczenia uniemożliwiające dalsze zwiększanie częstotliwości taktowania procesorów. Obliczenia równoległe stały się dominującym wzorcem w architekturze komputerowej, głównie za sprawą upowszechnienia procesorów wielordzeniowych.

    VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language ) jest bardzo popularnym językiem opisu sprzętu używanym w komputerowym projektowaniu układów cyfrowych typu FPGA i ASIC.Burroughs – amerykańskie przedsiębiorstwo informatyczne, które miało szereg osiągnięć we wczesnym okresie umaszynowienia przetwarzania informacji.

    Ze względu na skalę można wyróżnić obliczenia równoległe: na poziomie bitów, instrukcji, danych oraz zadań, natomiast ze względu na poziom, na którym sprzęt wspomaga operacje równoległe, można wyróżnić komputery: jednoprocesorowe wielordzeniowe (zawierające jeden procesor wielordzeniowy), symetryczne wieloprocesorowe (zawierające kilka identycznych, równorzędnych procesorów) oraz systemy składające się z wielu maszyn: klastry, systemy MPP czy gridy.

    Beowulf – rodzaj klastra komputerowego realizowanego z założeniem uzyskania maksymalnej mocy obliczeniowej jak najmniejszym kosztem. Najczęściej budowany ze zwykłych, masowo produkowanych komputerów klasy PC, połączonych siecią Ethernet. Komputery tworzące taki klaster pracują zazwyczaj pod Linuksem, a do przetwarzania równoległego używa się bibliotek MPI, LAM lub PVM.Napięcie elektryczne – różnica potencjałów elektrycznych między dwoma punktami obwodu elektrycznego lub pola elektrycznego. Symbolem napięcia jest U. Napięcie elektryczne jest to stosunek pracy wykonanej podczas przenoszenia ładunku elektrycznego między punktami, dla których określa się napięcie, do wartości tego ładunku. Wyraża to wzór

    Do prowadzenia obliczeń równoległych, oprócz sprzętu, konieczne są również odpowiednie algorytmy nazywane równoległymi. Są one trudniejsze w implementacji niż sekwencyjne, ponieważ współbieżność wprowadza dodatkowe możliwości popełnienia błędu. Powstają również dodatkowe problemy w uzyskaniu wysokiej wydajności z powodu dodatkowych nakładów na komunikację i konieczność synchronizacji obliczeń.

    Wątek (ang. thread) – część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków.RISC (Reduced Instruction Set Computer) – nazwa architektury mikroprocesorów, która została przedstawiona pod koniec lat 70. w teoretycznych pracach na uniwersytecie Berkeley oraz w wynikach badań Johna Cocke z Thomas J. Watson Research Center.

    Spis treści

  • 1 Obliczenia zależne, niezależne i granica ich przyspieszania
  • 1.1 Warunki Bernsteina
  • 1.1.1 Przykład 1
  • 1.1.2 Przykład 2
  • 1.2 Sytuacje wyścigu, wzajemne wykluczanie, synchronizacja i spowolnienie równoległe
  • 1.3 Prawa Amdahla i Gustafsona
  • 1.4 Równoległość drobno- i gruboziarnista
  • 1.5 Modele spójności
  • 2 Taksonomia Flynna i typy zrównoleglania
  • 2.1 Taksonomia Flynna
  • 2.2 Zrównoleglanie na poziomie bitów
  • 2.3 Zrównoleglanie na poziomie instrukcji
  • 2.4 Zrównoleglanie przetwarzania danych
  • 2.5 Zrównoleglanie zadań
  • 3 Sprzęt
  • 3.1 Pamięć i komunikacja
  • 3.2 Typy komputerów równoległych
  • 3.2.1 Procesory wielordzeniowe
  • 3.2.2 Symetryczne systemy wieloprocesorowe
  • 3.2.3 Przetwarzanie rozproszone
  • 3.2.3.1 Przetwarzanie klastrowe
  • 3.2.3.2 Komputery masowo równoległe
  • 3.2.3.3 Obliczenia w gridach
  • 3.2.4 Specjalistyczne urządzenia do przetwarzania równoległego
  • 4 Oprogramowanie
  • 4.1 Zrównoleglanie automatyczne
  • 4.2 Mechanizm punktów kontrolnych
  • 5 Zastosowania
  • 6 Historia
  • 6.1 Koniec ery skalowania częstotliwości
  • 7 Przypisy
  • 8 Zobacz też
  • 9 Linki zewnętrzne
  • Teoria złożoności obliczeniowej – dział teorii obliczeń, którego głównym celem jest określanie ilości zasobów potrzebnych do rozwiązania problemów obliczeniowych. Rozważanymi zasobami są takie wielkości jak czas, pamięć lub liczba procesorów.Pamięć dzielona - w informatyce rodzaj pamięci, z którego może jednocześnie korzystać wiele programów. Służy do umożliwienia komunikacji pomiędzy nimi lub uniknięcia redundantnych kopii. W zależności od kontekstu, programy mogą być uruchamiane na pojedynczym lub wielu osobnych procesorach. Pamięć wykorzystywana do komunikacji w obrębie pojedynczego programu, na przykład pomiędzy jego wieloma wątkami, zwykle nie jest nazywana pamięcią dzieloną.

    Obliczenia zależne, niezależne i granica ich przyspieszania[]

    W przetwarzaniu sekwencyjnym, aby rozwiązać problem obliczeniowy, tworzony jest algorytm, który składa się z ciągu instrukcji. Instrukcje te są wykonywane, w ustalonej kolejności na jednej jednostce obliczeniowej. Nie można wykonywać więcej niż jednej instrukcji jednocześnie – po ukończeniu jednej instrukcji, wykonywana jest kolejna.

    Przemianowanie rejestrów - technika w inżynierii komputerowej używana w celu uniknięcia niepotrzebnego szeregowego wykonania instrukcji narzuconego przez wykorzystanie tych samych rejestrów procesora przez następujące po sobie instrukcje.MDGRAPE-3 - superkomputer wybudowany w instytucie Riken w Japonii w 2006 roku. Jest systemem dedykowanym, zbudowanym w celu symulacji dynamiki molekularnej, w szczególności do przewidywania struktury białek.

    W obliczeniach równoległych, aby rozwiązać dany problem, wykorzystuje się wiele jednostek obliczeniowych jednocześnie. Można tak postąpić, dzieląc problem na mniejsze, niezależne części, z których jedna może być wykonywana niezależnie od pozostałych. Jeśli uda się przeprowadzić taki podział, każda z części może być wykonana na innej jednostce obliczeniowej w tym samym czasie co pozostałe.

    Gene Myron Amdahl (ur. 16 listopada 1922 w Flandreau w Dakocie Południowej), Amerykanin norwesko-szwedzkiego pochodzenia, pionier techniki komputerowej i konstruktor pierwszych komputerów.Wielka Brytania, Zjednoczone Królestwo (ang. United Kingdom), Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej (ang. United Kingdom of Great Britain and Northern Ireland) – unitarne państwo wyspiarskie położone w Europie Zachodniej. W skład Wielkiej Brytanii wchodzą: Anglia, Walia i Szkocja położone na wyspie Wielka Brytania oraz Irlandia Północna leżąca w północnej części wyspy Irlandia. Na wyspie tej znajduje się jedyna granica lądowa Zjednoczonego Królestwa z innym państwem – Irlandią. Poza nią, Wielka Brytania otoczona jest przez Ocean Atlantycki na zachodzie i północy, Morze Północne na wschodzie, kanał La Manche na południu i Morze Irlandzkie na zachodzie.

    Wyodrębnienie tych niezależnych części jest kluczowe w implementacji algorytmów równoległych. Żaden program nie może być wykonany szybciej niż najdłuższy łańcuch zależnych od siebie obliczeń (znanych jako ścieżka krytyczna), ponieważ obliczenia, które są zależne od poprzednich obliczeń w łańcuchu, muszą być wykonywane po sobie. Jednak większość algorytmów nie składa się tylko z długich łańcuchów zależnych od siebie obliczeń; najczęściej pojawia się możliwość wykonania niezależnych obliczeń równolegle.

    MISD (Multiple Instruction, Single Data) - architektura przetwarzania równoległego, w której wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych. W zasadzie jedynym zastosowaniem są systemy wykorzystujące redundancję (wielokrotne wykonywanie tych samych obliczeń) do minimalizacji błędów.Rejestry procesora to komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128 bitów) umieszczone wewnątrz procesora i służące do przechowywania tymczasowych wyników obliczeń, adresów lokacji w pamięci operacyjnej itd. Większość procesorów przeprowadza działania wyłącznie korzystając z wewnętrznych rejestrów, kopiując do nich dane z pamięci i po zakończeniu obliczeń odsyłając wynik do pamięci.

    Warunki Bernsteina[]

    Niech Pi i Pj będą dwoma fragmentami programu. Warunki Bernsteina opisują, kiedy dwa fragmenty są niezależne od siebie i mogą być wykonane równolegle bez żadnych przeszkód. Niech Ii będzie zbiorem wszystkich zmiennych wejściowych dla Pi, a Oi zbiorem jego zmiennych wyjściowych (podobnie Ij i Oj dla Pj). Pi i Pj są niezależne, jeśli spełniają następujące warunki:

    Architektura komputera – sposób organizacji elementów tworzących komputer. Pojęcie to używane jest dosyć luźno. Może ono dzielić systemy komputerowe ze względu na wiele czynników, zazwyczaj jednak pod pojęciem architektury komputera rozumie się organizację połączeń pomiędzy pamięcią, procesorem i urządzeniami wejścia-wyjścia.Topologia hierarchiczna (zwana również topologią drzewa lub rozproszonej gwiazdy) jest utworzona z wielu magistrali liniowych połączonych łańcuchowo. Zasada jej działania polega na dublowaniu poszczególnych magistrali. Początkowa pierwszą magistralę liniową dołącza się do koncentratora, dzieląc ją na dwie lub więcej magistral za pomocą przewodów koncentrycznych - w ten sposób powstają kolejne magistrale. Proces dzielenia można kontynuować, tworząc dodatkowe magistrale liniowe wychodzące z magistral odchodzących od pierwszej magistrali, co nadaje topologii cechy topologii gwiazdy. Jeśli jedną magistralę podzieli się na trzy magistrale i każdą z nich na kolejne trzy to w efekcie otrzymamy łącznie trzynaście magistral. Tworzone są kolejne poziomy drzewa, ale ich liczba jest ograniczona. Na końcu tego drzewa zawsze znajdują się pojedyncze terminale (urządzenia) podłączane do magistral.
  • .
  • Naruszenie pierwszego lub drugiego warunku wprowadza zależność przepływu, odpowiadającą sytuacji, w której wynikiem działania Pi jest wartość wykorzystywana przez Pj (lub odwrotnie). Trzeci warunek to wymaganie niezależności wyjścia. W sytuacji, gdy dwie wartości są zapisywane w jednym miejscu, to druga nadpisze pierwszą.

    Luigi Federico Menabrea (ur. 4 września 1809 w Chambéry, zm. 25 maja 1896 tamże) – włoski inżynier, matematyk, generał (tenente generale) i polityk, premier i minister spraw zagranicznych (1867–1869) oraz senator Królestwa Włoch.AltiVec to stało- i zmiennopozycyjny zestaw instrukcji klasy SIMD zaprojektowany przez konsorcjum AIM (Apple, IBM i Motorola), zaimplementowany w mikroprocesorach PowerPC serii G4 (Motorola) oraz G5 (IBM). AltiVec jest zarezerwowanym znakiem handlowym firmy Motorola, więc pozostali członkowie konsorcjum używają nazw Velocity Engine (Apple) oraz VMX (IBM).

    Przykład 1[]

    Poniżej przedstawiono dwie funkcje. Pierwsza zawiera przykładowe operacje zależne, a druga niezależne:

    1: function Zależne(a, b)
    2:    c := a·b
    3:    d := 2·c
    4: end function
    

    Operacja 3 w Zależne(a, b) nie może być wykonana przed (czy nawet równolegle z) operacją 2, ponieważ operacja 3 wykorzystuje wynik z operacji 2. Narusza warunek 1 i w konsekwencji wymusza określony przepływ sterowania.

    1: function Niezależne(a, b)
    2:      c := a·b
    3:      d := 2·b
    4:      e := a+b
    5: end function
    

    W tym przykładzie nie ma żadnych zależności pomiędzy operacjami a więc mogą one być wykonane równolegle.

    Metoda Elementów Skończonych albo Metoda Elementu Skończonego (MES, ang. FEM, finite-element method) – zaawansowana metoda rozwiązywania układów równań różniczkowych, opierająca się na podziale dziedziny (tzw. dyskretyzacja) na skończone elementy, dla których rozwiązanie jest przybliżane przez konkretne funkcje, i przeprowadzaniu faktycznych obliczeń tylko dla węzłów tego podziału.Pojęcie bariery w przetwarzaniu równoległym definiujemy dla grupy procesów jako miejsce synchronizacji, które każdy z nich musi osiągnąć zanim obliczenia będą kontynuowane.

    Przykład 2[]

    Spełnienie warunków Bernsteina może zależeć również od tego, w jaki sposób zapisano program. Przykładowo w funkcji

    1: function ZależneII(a, b)
    2:      a := b + 5
    3:      c := a + 10
    4: end function
    

    wartość c zależy od wyliczanego wcześniej a. Można jednak w prosty sposób usunąć tę zależność i napisać równoważnie:

    1: function NiezależneII(a, b)
    2:      a := b + 5
    3:      c := b + 15
    4: end function
    

    Warunki Bernsteina nie zezwalają na współdzielenie pamięci, a w konsekwencji na wymianę informacji pomiędzy podprogramami. Aby zapewnić możliwość komunikacji, potrzebne jest więc ustalanie kolejności między dostępami do pamięci, korzystając z takich technik jak semafory, bariery czy inne techniki synchronizacji.

    SISD - jest to architektura klasycznego komputera sekwencyjnego, zawierającego jeden procesor i jeden blok pamięci operacyjnej. Ciąg instrukcji wykonywany jest sekwencyjnie. Architektura taka może zawierać również pewne elementy równoległości, jak np. przetwarzanie potokowe (ang. pipelining). Procesor może się składać z kilku jednostek przetwarzających, jednak wszystkie te jednostki podlegają jednej jednostce sterującej procesora. Również jeżeli komputer składa się z kilku procesorów, ale wykonują one niezależne od siebie programy, to możemy traktować go jako zestaw maszyn SISD.Procesor wektorowy, w przeciwieństwie do skalarnego, pozwala na przetwarzanie,w pojedynczych cyklach całych wektorów danych. Operandami instrukcji są wieloelementowe zbiory liczb. Dzięki temu można przyspieszyć niektóre obliczenia.

    Sytuacje wyścigu, wzajemne wykluczanie, synchronizacja i spowolnienie równoległe[]

    Podczas wykonywania programu równoległego, poszczególne jego podzadania komunikują się ze sobą, a ich poszczególne instrukcje mogą się przeplatać w dowolny sposób. W poniższym przykładzie dwa podzadania operują na współdzielonej zmiennej V:

    Empiryzm (od stgr. ἐμπειρία empeiría – "doświadczenie") – doktryna filozoficzna głosząca, że źródłem ludzkiego poznania są wyłącznie lub przede wszystkim bodźce zmysłowe docierające do naszego umysłu ze świata zewnętrznego, zaś wszelkie idee, teorie itp. są w stosunku do nich wtórne.Hyper-threading (nazwa oficjalna Hyper-Threading Technology, nazwy skrócone HT Technology, HTT lub HT) – implementacja wielowątkowości współbieżnej (ang. simultaneous multithreading, SMT) opracowana przez firmę Intel i stosowana w procesorach Atom, Core i3, Core i5, Core i7, Itanium, Pentium 4 oraz Xeon.

    Jeśli instrukcja 1B zostanie wykonana pomiędzy 1A i 3A, lub jeśli instrukcja 1A zostanie wykonana pomiędzy 1B i 3B, to wynik działania programu będzie nieprawidłowy. Zjawisko to jest znane jako wyścigi lub hazard (ang. race conditions), a fragment programu, który nie powinien być wykonywany przez kilka podzadań jednocześnie, nazywamy sekcją krytyczną. W takim przypadku jak powyżej programista powinien zapewnić wzajemne wykluczanie pomiędzy podzadaniami w dostępie do zmiennej V. Można to osiągnąć, stosując blokady – konstrukcje programistyczne, dzięki którym tylko jedno podzadania ma dostęp do określonego zasobu. Powyższy fragment programu przepisany z użyciem blokad mógłby zostać przepisany w następujący sposób:

    Sekcja krytyczna - w programowaniu współbieżnym fragment kodu programu, w którym korzysta się z zasobu dzielonego, a co za tym idzie w danej chwili może być wykorzystywany przez co najwyżej jeden wątek. System operacyjny dba o synchronizację, jeśli więcej wątków żąda wykonania kodu sekcji krytycznej, dopuszczany jest tylko jeden wątek, pozostałe zaś są wstrzymywane. Dąży się do tego, aby kod sekcji krytycznej był krótki - by wykonywał się szybko. Poprzez ostrożne kontrolowanie, które zmienne są modyfikowane wewnątrz i poza sekcją krytyczną (zwykle poprzez uzyskiwanie dostępu do istotnego stanu tylko z zewnątrz), zapobiega się współbieżnemu dostępowi do tego stanu. Sekcja krytyczna jest zwykle używana kiedy program wielowątkowy musi uaktualnić wiele powiązanych zmiennych, tak żeby inny wątek nie dokonał szkodliwych zmian tych danych. W odnośnej sytuacji, sekcja krytyczna może być użyta ażeby zagwarantować, że wspólny zasób, na przykład drukarka, jest używana tylko przez jeden proces w określonym czasie.Stany Zjednoczone, Stany Zjednoczone Ameryki (ang. United States, US, United States of America, USA) – federacyjne państwo w Ameryce Północnej graniczące z Kanadą od północy, Meksykiem od południa, Oceanem Spokojnym od zachodu, Oceanem Arktycznym od północnego zachodu i Oceanem Atlantyckim od wschodu.

    Tylko jedno z podzadań z sukcesem zablokuje zmienną V i uzyska do niej wyłączny dostęp, podczas gdy drugie będzie musiało czekać na jej odblokowanie. Zastosowanie powyższej konstrukcji daje gwarancję poprawnego wykonania programu, kosztem jest jednak jego spowolnienie, które może być znaczne.

    Blokowanie wielu zmiennych przy użyciu nieatomowych blokad może spowodować zakleszczenie. Atomowość blokady to własność, która gwarantuje, że wszystkie zmienne blokowane są razem, to znaczy, jeśli dwa podzadania próbują zablokować kilka zmiennych, to uda się to tylko jednemu z nich i blokada powstanie na wszystkich zmiennych. Jeśli natomiast blokady nie są atomowe, to może się zdarzyć, że jeśli dwa podzadania próbują zablokować te same dwie zmienne, to jeden z nich zablokuje jedną a drugi drugą. W powstałej sytuacji oba podzadania czekają na siebie nawzajem i żaden z nich nie może zakończyć działania. Taką sytuację nazywamy zakleszczeniem.

    Interfejs programowania aplikacji (ang. Application Programming Interface, API) – sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki programy komunikują się między sobą. API definiuje się na poziomie kodu źródłowego dla takich składników oprogramowania jak np. aplikacje, biblioteki czy system operacyjny. Zadaniem API jest dostarczenie odpowiednich specyfikacji podprogramów, struktur danych, klas obiektów i wymaganych protokołów komunikacyjnych.Czas propagacji, w mikroelektronice - czas upływający od chwili zmiany stanu wejścia układu logicznego lub elementu logicznego do chwili ustalenia stanu wyjść, będącej reakcją na tę zmianę wejścia. Czas propagacji jest podstawowym parametrem charakteryzującym szybkość działania elementów i układów logicznych.

    Wiele programów równoległych wymaga by ich podzadania były dodatkowo synchronizowane. Taką możliwość daje użycie bariery. Bariery są zwykle implementowane za pomocą blokad. Wyróżnia się klasa algorytmów, w których nie używa się ani blokad ani barier (ang. lock-free and wait-free algorithms). Jednak stosowanie tego podejścia napotyka spore trudności (za przedstawienie eleganckich dowodów, wykorzystujących elementy topologii algebraicznej, niemożliwości rozwiązania dość prostych problemów przyznano Nagrodą Gödla w 2004).

    Topologia sieci komputerowej – model układu połączeń różnych elementów (linki, węzły itd.) sieci komputerowej. Określenie topologia sieci może odnosić się do konstrukcji fizycznej albo logicznej sieci.7 października jest 280. (w latach przestępnych 281.) dniem w kalendarzu gregoriańskim. Do końca roku pozostaje 85 dni.

    Nie każda próba "zrównoleglenia" daje efekt w postaci przyspieszenia obliczeń. W ogólności, jeśli program jest dzielony na coraz więcej i więcej podzadań, to w pewnym momencie narzuty związane z komunikacją zaczynają przeważać nad zyskiem ze "zrównoleglenia" i pomimo zwiększania teoretycznej mocy obliczeniowej mamy do czynienia ze spowolnieniem obliczeń. Zjawisko to nazywane jest spowolnieniem równoległym (ang. parallel slowdown). Próbą górnego oszacowania możliwego przyspieszenia uzyskanego przez zrównoleglenie obliczeń dają prawa: Amdahla i Gustafsona.

    Przetwarzanie współbieżne (ang. concurrent computing) – przetwarzanie oparte na współistnieniu wielu wątków lub procesów, operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle.NVIDIA Corporation NASDAQ: NVDA – amerykańska firma komputerowa; jeden z największych na świecie producentów procesorów graficznych i innych układów scalonych przeznaczonych na rynek komputerowy. NVIDIA jest także głównym dostawcą (pod względem udziału w rynku) producentów kart graficznych dla komputerów osobistych ze swoją standardową serią GeForce.

    Prawa Amdahla i Gustafsona[]

    Przykładowy wykres czasu wykonania programu (actual runtime) i jego przyspieszenie (actual speedup) w zależności od liczby procesorów. W pewnym momencie, pomimo zwiększania liczby procesorów, czas obliczeń przestaje maleć (podobnie przyspieszenie przestaje rosnąć). Zaznaczono również optymalny wzrost przyspieszenia (ideal speedup) oraz optymalny spadek czasu obliczeń (ideal runtime).

    Teoretycznie, przyspieszenie spowodowane zrównolegleniem mogłoby być co najwyżej liniowe – podwojenie liczby jednostek obliczeniowych nie może zmniejszyć czasu obliczeń o więcej niż połowę, jednak w praktyce osiągnięcie optymalnego przyspieszenia nie jest możliwe. Większość realizacji osiąga przyspieszenie bliskie optymalnemu tylko dla małej liczby jednostek obliczeniowych.

    Definicja intuicyjna: SSE to dodatkowe rozkazy rozpoznawane przez mikroprocesory firmy Intel oraz kompatybilnych, które pozwalają znacznie szybciej wykonywać obliczenia matematyczne, szczególnie te wykorzystywane w dziedzinie multimediów, co przekłada się na zwiększenie efektywności działania m.in. gier komputerowych, programów graficznych, muzycznych, kodowania filmów i muzyki.Ekonomia – nauka społeczna analizująca oraz opisująca produkcję, dystrybucję oraz konsumpcję dóbr. Słowo „ekonomia” wywodzi się z języka greckiego i tłumaczy się jako oikos, co znaczy dom i nomos, czyli prawo, reguła. Starożytni Grecy stosowali tę definicję do określania efektywnych zasad funkcjonowania gospodarstwa domowego.

    Potencjalne przyspieszenie algorytmu na platformie korzystającej z obliczeń równoległych jest określone przez prawo Amdahla sformułowane w latach 60. XX wieku. Prawo to wychodzi z założenia, że duży matematyczny czy inżynierski problem typowo składa się z takich części, które udaje się zrównoleglić i z takich, dla których nie jest to możliwe. Prawo Amdahla stanowi, iż fragmenty programu, które nie mogą być zrównoleglone, ograniczają możliwe do osiągnięcia przyspieszenie całego procesu. Ten związek jest definiowany przez następujące równanie:

    Charles Babbage (ur. 26 grudnia 1791 w Teignmouth, zm. 18 października 1871 w Londynie) – angielski matematyk, astronom i mechanik, autor tablic logarytmicznych, konstruktor mechanicznych maszyn liczących.Buforowanie – technologia polegająca na stosowaniu buforów programowych lub sprzętowych, wykorzystywana najczęściej w celu wyrównania różnic prędkości przesyłania danych między różnymi urządzeniami. Działa on zazwyczaj wykorzystując zasadę FIFO.

    gdzie: S jest maksymalnym, możliwym do osiągnięcia przyspieszeniem programu (jako ułamek swojej pierwotnej prędkości w przypadku wykonywania sekwencyjnego), a P jest ułamkiem, który określa jaką część obliczeń można "zrównoleglić". Na przykład, jeśli sekwencyjna część programu stanowi 10% całkowitego czasu potrzebnego na jego wykonanie (), to można osiągnąć nie więcej niż 10-krotne przyspieszenie, niezależnie od ilości procesorów jakie zostaną dodane. Tworzy to odgórny limit przydatności dodawania większej ilości jednostek obliczeniowych. "Jeśli zadanie nie może być podzielone z uwagi na ograniczenia wynikające z sekwencyjności problemu, dodanie mocy przetwarzania nie wpłynie na czas jego wykonania. Ciąża u ludzi trwa dziewięć miesięcy, obojętnie, ile kobiet uczestniczy w jej utrzymaniu".

    Trasowanie (ang. routing, pol. ruting, rutowanie) – w informatyce wyznaczanie trasy i wysłanie nią pakietu danych w sieci komputerowej. Urządzenie węzłowe, w którym kształtowany jest ruch sieciowy, nazywane jest routerem – jego rolę może pełnić np. komputer stacjonarny czy oddzielne dedykowane urządzenie.Kraków (łac. Cracovia, niem. Krakau) – miasto na prawach powiatu w południowej Polsce, siedziba władz województwa małopolskiego, drugie w kraju pod względem liczby mieszkańców i pod względem powierzchni.
    Graficzna reprezentacja prawa Amdahla. Jeśli zadanie składa się z dwóch niezależnych części A i B oraz część B stanowi około 25% czasu potrzebnego na wykonanie całego zadania, to pięciokrotne przyspieszenie wykonania części B skutkuje znacznie mniejszym przyspieszeniem wykonania całości zadania niż zaledwie dwukrotne przyspieszenie wykonania części A.

    Kolejne prawo, nazywane Prawem Gustafsona (ang. Gustafson's law) jest blisko spokrewnionym z prawem Amdahla. Gustafson w swojej pracy argumentował, że co prawda dla ustalonego rozmiaru problemu, prawo Amdahla jest słuszne, jednak z jego praktyki badawczej wynika, że dysponując większą liczbą procesorów, próbuje się również rozwiązywać większe problemy, co z kolei powoduje, że coraz większa część obliczeń jest możliwa do zrównoleglenia.

    Los Alamos National Laboratory - laboratorium naukowe położone w pobliżu miasteczka Los Alamos w amerykańskim stanie Nowy Meksyk. Organizacyjnie podlega Departamentowi Energii Stanów Zjednoczonych. W pracach badawczych współpracuje z Uniwersytetem Kalifornijskim. Zatrudnia ponad 9000 pracowników, a jego roczny budżet to około 2,2 mld dolarów. Ośrodek prowadzi badania nad wieloma dziedzinami nauki, między innymi nad wykorzystaniem energii słonecznej i jądrowej do celów pokojowych. Jego rola w badaniach nad bronią nuklearną skupia się głównie na przeprowadzaniu komputerowych symulacji wybuchów jądrowych. Znajduje się tu superkomputer Roadrunner, który w 2008 roku jako pierwszy superkomputer w historii osiągnął wydajność ponad 1 PFLOPS.Prawo Gustafsona (znane także jako prawo Gustafsona-Barsisa) jest prawem w inżynierii komputerowej, które stanowi, że każdy wystarczająco duży problem może być efektywnie zrównoleglony. Prawo Gustafsona jest ściśle związane z prawem Amdahla, które określa limit przyspieszenia spowodowanego zrównolegleniem. Zostało po raz pierwszy sformułowane przez J. Gustafsona w 1988 roku.

    Inne ograniczenie możliwości "zrównoleglania" algorytmów pochodzi z teorii złożoności obliczeniowej. Podobnie jak dla obliczeń sekwencyjnych istnieje klasa problemów NP-zupełnych, tak w obliczeniach równoległych istnieje klasa problemów P-zupełnych, których dobre "zrównoleglenie" jest prawdopodobnie niemożliwe.

    Równoległość drobno- i gruboziarnista[]

    Aplikacje mogą być klasyfikowane pod względem tego, jak często podzadania wymagają synchronizacji lub komunikują się ze sobą. Mówimy o równoległości drobnoziarnistej (ang. fine-grained), jeśli komunikacja następuje wielokrotnie w ciągu sekundy, a gruboziarnistej (ang. coarse-grained), jeśli występuje rzadziej. Z najłatwiejszym przypadkiem mamy do czynienia, gdy komunikacja nie występuje w ogóle lub sporadycznie (żargonowo taką sytuację określa się jako embarrassing parallelism).

    Transakcja - zbiór operacji na bazie danych, które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadna z nich. Warunki jakie powinny spełniać transakcje bardziej szczegółowo opisują zasady ACID (Atomicity, Consistency, Isolation, Durability - Atomowość, Spójność, Izolacja, Trwałość).Pojemnością elektryczną odosobnionego przewodnika nazywamy wielkość fizyczną C równą stosunkowi ładunku q zgromadzonego na przewodniku do potencjału φ {displaystyle varphi } tego przewodnika.

    Modele spójności[]

    Leslie Lamport jako pierwszy zdefiniował koncepcję spójności sekwencyjnej. Jest również znany ze swojego wkładu w rozwój oprogramowania LaTeX.

    W systemach przetwarzania równoległego w celu przyspieszenia wykonywania operacji na pamięci współdzielonej stosuje się lokalne pamięci podręczne i buforowanie operacji zapisu. Istnienie tych mechanizmów może prowadzić do niespójności (dla różnych procesów te same, wspólne dane mogą przez pewien czas mieć różne wartości). Jako przykład można podać następującą sekwencję instrukcji (x i y są zmiennymi współdzielonymi, początkowo obie są równe 0):

    Tesla jest to grupa układów firmy NVIDIA przeznaczonych do wspomagania obliczeń naukowo-inżynierskich za pomocą technologii CUDA. Układy te zaprojektowano jako typowe karty rozszerzeń komputerów PC, które (w 2009 r.) mogą być instalowane w każdym komputerze posiadającym wolne gniazdo PCI Express. Układy Tesla są pierwszymi masowo produkowanymi układami przeznaczonymi do pracy w technologii GPGPU.Arytmetyka (łac. arithmetica, gr. αριθμητική arithmētikē, od αριθμητικός arithmētikos – arytmetyczna, od αριθμειν arithmein – liczyć, od αριθμός arithmós – liczba; spokr. ze staroang. rīm – liczba, i być z gr. αραρισκειν arariskein – pasować) – jedna z najstarszych część matematyki. W powszechnym użyciu słowo to odnosi się do zasad opisujących podstawowe działania na liczbach (arytmetyka elementarna).

    Realizacja wspomnianych mechanizmów może dopuścić sytuację, gdy aktualizacja zmiennych x i y jest dostarczana do wątku A w zmienionej kolejności, a więc mogłoby się zdarzyć, że wynik porównania w 3A byłby fałszywy. W związku z tym języki programowania równoległego i komputery równoległe muszą posiadać model spójności (ang. consistency model), który definiuje zasady wykonywania operacji na zmiennych współdzielonych w pamięci komputera oraz w jaki sposób powstają wyniki tych operacji.

    Superskalarność (ang. Superscalar) – cecha mikroprocesorów oznaczająca możliwość jednoczesnego wykonywania kilku instrukcji, realizowana poprzez zwielokrotnienie skalarnych jednostek wykonawczych.Liczby całkowite – liczby naturalne dodatnie N + = { 1 , 2 , 3 , … } {displaystyle mathbb {N} _{+}={1,2,3,dots }} oraz liczby przeciwne do nich { − 1 , − 2 , − 3 , … } {displaystyle {-1,-2,-3,dots }} , a także liczba zero. Uogólnieniem liczb całkowitych są liczby wymierne i tym samym liczby rzeczywiste, szczególnym przypadkiem liczb całkowitych są: liczby naturalne.

    Jednym z pierwszych modeli spójności był model spójności sekwencyjnej Lesliego Lamporta. Spójność sekwencyjna oznacza, że wyniki każdego możliwego działania programu równoległego są takie same jak wynik działania dla pewnego ustalonego sekwencyjnego wykonania tych operacji, przy czym kolejność wykonywania operacji przez każdy pojedynczy procesor zgadza się z kolejnością wykonania zapisaną w jego programie.

    HyperTransport (HT) – łącze typu punkt-punkt (P2P) umożliwiające połączenie ze sobą dwóch urządzeń opracowane przez HyperTransport Consortium. Sieć łączy HT wykorzystywana jest do szybkiej transmisji danych z niskimi opóźnieniami. Stosowane w procesorach między rdzeniami i koprocesorami, między procesorami w wieloprocesorowych komputerach, między procesorami a innymi urządzeniami obsługującymi technologię HT, między urządzeniami HT a kartami HT oraz do łączenia komputerów w wielokomputerowe klastry.Przetwarzanie rozproszone (ang. distributed processing) to wykonywanie określonych zadań użytkownika z wykorzystaniem współdzielonych zasobów połączonych siecią komputerową.

    Powszechnym modelem spójności pamięci jest STM (ang. software transactional memory, w którym używa się koncepcji atomowych transakcji zapożyczonej z teorii baz danych.

    Modele spójności pamięci mogą być przedstawiane formalnie na wiele sposobów. Wczesnym matematycznym modelem dla dyskretnych systemów rozproszonychsieci Petriego, które Carl Adam Petri zdefiniował w swojej rozprawie doktorskiej w 1962 roku.

    Thomas Sterling (ur. 21 lutego 1851, zm. 26 sierpnia 1930) – amerykański polityk z Dakoty Południowej związany z Partią Republikańską.Blokada (ang. lock) w informatyce to mechanizm służący do zapobiegania konfliktom w dostępie do zasobów w środowiskach wielozadaniowych.


    Podstrony: 1 [2] [3] [4] [5]



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Koprocesor, jednostka zmiennoprzecinkowa (FPU, ang. Floating Point Unit) to układ scalony wspomagający procesor w obliczeniach zmiennoprzecinkowych. W większości współczesnych konstrukcji, koprocesor arytmetyczny, a także jednostki obsługujące bardziej skomplikowane obliczenia (np. instrukcje wektorowe) są zintegrowane z procesorem w jednym układzie.
    MTBF (ang. Mean Time Between Failures) – średni czas bezawaryjnej pracy, czyli okres wyrażony w godzinach, w którym urządzenie może działać bez przerwy (awarii). MBTF jest stosowany m.in. w informatyce oraz zarządzaniu.
    Pamięć operacyjna (ang. internal memory, primary storage) – pamięć adresowana i dostępna bezpośrednio przez procesor, a nie przez urządzenia wejścia-wyjścia procesora. W pamięci tej mogą być umieszczane rozkazy (kody operacji) procesora (program) dostępne bezpośrednio przez procesor i stąd nazwa pamięć operacyjna. W Polsce często pamięć ta jest utożsamiana z pamięcią RAM, choć jest to zawężenie pojęcia, pamięcią operacyjną jest też pamięć nieulotna (ROM, EPROM i inne jej odmiany) dostępna bezpośrednio przez procesor, a dawniej używano pamięci o dostępie cyklicznym.
    Automat skończony (ang. finite state machine, FSM) – abstrakcyjny, matematyczny, iteracyjny model zachowania systemu dynamicznego oparty na tablicy dyskretnych przejść między jego kolejnymi stanami (diagram stanów).
    Magistrala (ang. bus) – zespół linii oraz układów przełączających służących do przesyłania sygnałów między połączonymi urządzeniami w systemach mikroprocesorowych, złożony z trzech współdziałających szyn:
    Honeywell - amerykański koncern przemysłowy związany z automatyką o długoletniej tradycji, założony w roku 1906 z siedzibą główną w Morristown w stanie New Jersey.
    DirectX – zestaw funkcji API wspomagających generowanie grafiki (dwu- i trójwymiarowej), dźwięku oraz innych zadań związanych zwykle z grami i innymi aplikacjami multimedialnymi.

    Reklama