Wprowadzenie do obliczeń równoległych

Wprowadzenie do obliczeń równoległych

3 oceny

Format:

ibuk

RODZAJ DOSTĘPU

 

Dostęp online przez myIBUK

WYBIERZ DŁUGOŚĆ DOSTĘPU

Cena początkowa:

Najniższa cena z 30 dni: 6,92 zł  


6,92

w tym VAT

TA KSIĄŻKA JEST W ABONAMENCIE

Już od 24,90 zł miesięcznie za 5 ebooków!

WYBIERZ SWÓJ ABONAMENT

Rozwiązywanie współczesnych problemów naukowych i praktycznych wymaga stosowania komputerów o dużych szybkościach obliczeń, a zapotrzebowanie na coraz większą moc obliczeniową wzrasta. Modele badanych zjawisk i procesów są bowiem coraz bardziej złożone, a przetwarzaniu podlegają coraz większe ilości danych.


Zwiększanie szybkości działania procesorów przez doskonalenie dotychczas stosowanych technologii napotyka ostatnio na trudne do pokonania przeszkody. Odpowiedzią na te ograniczenia są procesory wielordzeniowe, wykonujące obliczenia równoległe. Szybkość obecnych komputerów dzięki równoległej pracy połączonych ze sobą setek tysięcy procesorów jest rzędu biliarda operacji zmiennopozycyjnych na sekundę, a moc ta w przyszłości będzie wzrastać.


Niniejsza książka poświęcona jest zagadnieniom związanym z realizacją obliczeń równoległych, w szczególności koncentrując się na zagadnieniach analizowania, projektowania oraz implementacji programów równoległych. Omawiane są modele obliczeń oraz elementarne algorytmy równoległe, a także metody konstruowania programów równoległych dla komputerów z pamięcią wspólną i rozproszoną. Jest to unikalna pozycja, niemająca konkurencji na polskim rynku publikacji profesjonalnych. Nowe wydanie zostało poprawione i wzbogacone o ćwiczenia pozwalające sprawdzić nabytą wiedzę.


Adresatami książki są głównie studenci kierunków informatycznych uczelni wyższych, z pewnością jednak będzie to cenna pozycja w biblioteczce osób zajmujących się zawodowo obliczeniami równoległymi – programistów, projektantów systemów oraz wszystkich osób zainteresowanych tą tematyką.


Rok wydania2013
Liczba stron454
KategoriaProgramowanie
WydawcaWydawnictwo Naukowe PWN
ISBN-13978-83-01-17290-9
Numer wydania2
Język publikacjipolski
Informacja o sprzedawcyePWN sp. z o.o.

INNE EBOOKI AUTORA

Ciekawe propozycje

Spis treści

  Spis rysunków VIII
  Spis tabel XVII
  Wstęp XIX
  
  1. Procesy współbieżne     1
  
  1.1. Pojęcia podstawowe     1
  1.2. Współbieżność procesów w systemach operacyjnych     5
  1.3. Poprawność programu współbieżnego     7
  1.4. Wybrane problemy programowania współbieżnego     9
  1.4.1. Problem sekcji krytycznej     10
  1.4.2. Problem producenta i konsumenta     13
  1.4.3. Problem ucztujących filozofów     17
  1.4.4. Problem czytelników i pisarzy     20
  1.4.5. Monitory     22
  1.5. Uwagi do rozdziału     28
  1.6. ćwiczenia     30
  1.7. Uwagi bibliograficzne     40
  
  2. Podstawowe modele obliczeń równoległych     42
  
  2.1. Model z pamięciąwspólną     42
  2.2. Model sieciowy     49
  2.3. Porównanie modeli     57
  2.4. Uwagi do rozdziału     67
  2.5. ćwiczenia     70
  2.6. Uwagi bibliograficzne     74
  
  3. Elementarne algorytmy równoległe     76
  
  3.1. Ocena algorytmów równoległych     76
  3.2. Prawo Amdahla     82
  3.3. Prawo Gustafsona i Barsisa     84
  3.4. Miara Karpa i Flatta     85
  3.5. Algorytmy dla modelu z pamięcią wspólną     87
  3.6. Algorytmy dla modelu sieciowego     110
  3.7. Klasy problemów rozwiązywanych równolegle     121
  3.8. Uwagi do rozdziału     125
  3.9. ćwiczenia     141
  3.10. Uwagi bibliograficzne     148
  
  4. Projektowanie algorytmów równoległych     150
  
  4.1. Etapy projektowania     150
  4.2. Dekompozycja problemu     150
  4.2.1. Ogólna charakterystyka różnych rodzajów dekompozycji     150
  4.2.2. Dekompozycja funkcjonalna     157
  4.2.3. Dekompozycja danych     157
  4.2.4. Dekompozycja rekursywna     159
  4.2.5. Dekompozycja eksploracyjna     162
  4.2.6. Dekompozycja spekulatywna     164
  4.3. Rozdrobnienie obliczeń     164
  4.4. Minimalizowanie kosztu algorytmu równoległego     167
  4.4.1. Koszt organizacji obliczeń równoległych     167
  4.4.2. Obliczenia nadmiarowe     168
  4.4.3. Bezczynność procesorów     168
  4.4.4. Odwołania do danych wspólnych     169
  4.4.5. Nakładanie się obliczeń i komunikacji     170
  4.5. Przydzielanie zadań procesorom     171
  4.5.1. Równoważenie obciążenia     171
  4.5.2. Równoważenie statyczne     173
  4.5.3. Równoważenie dynamiczne     181
  4.6. Uwagi do rozdziału     186
  4.7. ćwiczenia     193
  4.8. Uwagi bibliograficzne     207
  
  5. Architektury komputerów równoległych     208
  
  5.1. Klasyfikacja architektur     208
  5.2. Komputery macierzowe     214
  5.3. Komputery wieloprocesorowe     216
  5.3.1. Komputery wieloprocesorowe z pamięcią wspólną     216
  5.3.2. Komputery wieloprocesorowe z pamięcią rozproszoną     217
  5.3.3. Rozproszona pamięć wspólna     218
  5.4. Klastry     218
  5.4.1. Klastry multiprocesorów symetrycznych     219
  5.4.2. Klastry procesorów wielordzeniowych     220
  5.4.3. Klastry komputerów     220
  5.4.4. Cechy oraz zastosowania klastrów     222
  5.5. Komputery o niekonwencjonalnych architekturach     224
  5.5.1. Komputery przepływowe     224
  5.5.2. Komputery systoliczne     233
  5.6. Sieci połączeń     235
  5.6.1. Charakterystyka sieci połączeń     235
  5.6.2. Topologie sieci połączeń     236
  5.7. Uwagi do rozdziału     245
  5.8. ćwiczenia     248
  5.9. Uwagi bibliograficzne     251
  
  6. Programowanie równoległe z przesyłaniem wiadomości     254
  
  6.1. Wprowadzenie     254
  6.2. Model obliczeń MPI     255
  6.3. Minimalne połowienie grafu     256
  6.3.1. Kompilacja i wykonanie programu     260
  6.3.2. Funkcje MPI_Init oraz MPI_Finalize     260
  6.3.3. Funkcje MPI_Comm_rank oraz MPI_Comm_size     260
  6.3.4. Funkcje MPI_Send oraz MPI_Recv     261
  6.3.5. Komunikacja kolektywna — funkcje MPI_Bcast oraz MPI_Reduce     265
  6.4. Sortowanie     270
  6.4.1. Tworzenie nowych komunikatorów — funkcja MPI_Comm_split     270
  6.4.2. Gromadzenie i rozdzielanie danych — funkcje MPI_Gather i MPI_Scatter     272
  6.5. Wyznaczanie liczb pierwszych     274
  6.5.1. Funkcja MPI_Gatherv     275
  6.5.2. Funkcja MPI_Wtime     279
  6.6. Mnożenie macierzy przez wektor     281
  6.7. ćwiczenia     285
  6.8. Uwagi bibliograficzne     286
  
  7. Programowanie równoległe z użyciem pamięci wspólnej     287
  
  7.1. Wprowadzenie     287
  7.2. Model obliczeń OpenMP     288
  7.3. Budowanie programu równoległego     290
  7.4. Podstawowe konstrukcje     293
  7.4.1. Pojęcia konstrukcji i regionu     293
  7.4.2. Konstrukcja równoległa     294
  7.4.3. Kompilacja i wykonanie programu     295
  7.4.4. Konstrukcja iteracyjna     296
  7.4.5. Konstrukcja sekcji     298
  7.4.6. Konstrukcja pojedynczego wątku     300
  7.5. Klauzule     301
  7.6. Konstrukcje synchronizacyjne     311
  7.7. Konstrukcje zaawansowane     314
  7.8. Minimalne połowienie grafu     315
  7.9. Sortowanie     317
  7.10. Wyznaczanie liczb pierwszych     321
  7.11. ćwiczenia     323
  7.12. Uwagi bibliograficzne     325
  
  Rozwiązania ćwiczeń     326
  Słowniczek terminów     407
  Bibliografia     423
  Skorowidz     439
RozwińZwiń