PRAM.

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

STRUKTURY DANYCH.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
Zaawansowane techniki algorytmiczne
ALGORYTMY GRAFOWE.
Grażyna Mirkowska PJWSTK 15 listopad 2000
Programowanie w języku Visual Basic
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Programowanie I Rekurencja.
Nośniki sygnałów - przykład Nośniki sygnałów – przykład.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Instrukcje 1 Definicje wstępne Formalny opis akcji wykonywanej przez komputer nazywamy instrukcją ( statement), Każda instrukcja kończona jest średnikiem.
Ogólne jednostki programowe 1
Algorytmy grafowe Reprezentacja w pamięci
Rzędy wielkości funkcji
Semantyki programów współbieżnych " Determinizm programów sekwencyjnych, " Nie-determinizm programów współbieżnych, " prawdziwa równoległość vs.przeploty.
Algorytmika w drugim arkuszu maturalnym. Standardy wymagań I. WIADOMOŚCI I ROZUMIENIE I. WIADOMOŚCI I ROZUMIENIE II.KORZYSTANIE Z INFORMACJI II.KORZYSTANIE.
PASCAL (2) dr Anna Kwiatkowska.
Semafory.
Typy wskaźnikowe, dynamiczne struktury danych
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Algorytmy i struktury danych
Podstawy programowania II
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Operacje na strukturach listowych
Równoległe algorytmy genetyczne w optymalizacji kombinatorycznej
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Pierwsze programy.
Wyrażenia w Turbo Pascalu.
Rodzaje, przechodzenie grafu
STEROWANIE Ale nie tylko
Instrukcja warunkowa i wyboru
Geometria obliczeniowa Wykład 12
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
Użytkowanie i programowanie Matlaba
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
Dynamiczne struktury danych
Ogólna struktura programu w TP
PL/SQL – dalsza wędrówka
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
Geometria obliczeniowa Wykład 14 Algorytmy randomizowane 1.Programowanie liniowe w R 2. 2.Lokalizacja punktu w siatce trapezów. 3.Znajdywanie średnicy.
Algorytmy i Struktury Danych Struktury Danych
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Przeszukiwanie wszerz
Pętle – instrukcje powtórzeń
Zbiory dynamiczne.
ALGORYTMY I STRUKTURY DANYCH
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Lua - wprowadzenie ● lua.org – źródła, dokumentacja, podręcznik itp ● Interpreter - Lua.org->Downloads->Binaries->get a binary-> Windows->Wersja >Executables->
Listy.
Współprogramy IV.
Dane, zmienne, instrukcje
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

PRAM

EREW CREW ERCW CRCW

SYNCHRONIZACJA I STEROWANIE procesy są ściśle zsynchronizowane testowanie warunków zakończenia pętli - za pomocą sieci sterującej lub jednoczesnego zapisu do pamięci

USTALANIE PORZĄDKU ELEMENTÓW NA LIŚCIE Metoda przeskakiwania (podwajania) : DANE : n elementowa lista rekordów (pola : klucz, d, next) WYNIK : d[i] = odległość elementu o kluczu=i od końca listy L 0 jeśli next[i] = NIL d[i] : = d[next[i]]+ 1 jeśli next[i] <>NIL

Procedure LIST-RANK (L); { dla EREW } begin for każdy proces i in parallel do if next[i] = NIL then d[i] := 0 else d[i] := 1; while istnieje element i w L taki, że next[i] <> NIL do for każdy proces i in parallel do if next[i] <> NIL then d[i] := d[i] + d[next[i]]; next[i] := next[next[i]]; end; T(n) = O(lg n)

OBLICZENIA PREFIKSOWE NA LIŚCIE DANE: n, X = (x1, x2, ... xn ), n  1,  - binarny, łączny operator WYNIK: Y = (y1, y2, ... , yn ) x1 jeśli k = 1 yk = yk-1  xk jeśli k > 1 OZNACZENIA : [i,j] = xi xi+1 ... xj

T(n) = O(lg n) Procedure LIST-PREFIX (L); { dla EREW } {(x1, x2, ... xn ) umieszczone w liście L (xi, yi, next) } begin for każdy proces i in parallel do y[i] : = x[i]; while istnieje element i w L taki, że next[i] <> NIL do if next[i] <> NIL then y[next[i]] := y[i]  y[next[i]] next[i] := next[next[i]]; end; T(n) = O(lg n)

PROBLEM MAKSIMUM DANE: n > 0 , x1, ... , xn, xi  R; WYNIK : max = maximum {x1, ... , xn, xi  R}

FAST-MAX (X); { dla CRCW z jednolitym zapisem } { wykorzystuje n2 procesów } begin for i : =0 to n-1 in parallel do m[i] := TRUE; for i := 0 to n-1, for j := 0 to n-1 in parallel do {proces dla pary (i,j) !} if X[i] < X[j] then m[i] = FALSE; { wiele procesów może pisać ale wszystkie zapisują tę samą wartość - FALSE } for i := 0 to n-1 in parallel do if m[i] = TRUE then max := X[i] { wiele procesów może pisać ale wszystkie zapisują tę samą wartość – max } return max end; T(n) = O(1)

5 6 9 2 m F T X[j} X[i]

FIND-ROOTS(F) begin for każdy procesor i in parallel do if parent[i] = NIL then root[i] := i; while istnieje węzeł i taki, że parent[i] <> NIL do for każdy procesor i in parallel do if parent[i] <>NIL then root[i] := root[parent[i]]; parent[i] := parent[parent[i]]; end;