POZNAŃ SUPERCOMPUTING AND NETWORKING. Zwiększanie efektywności programów optymalizacja pamięci część 1
|
|
- Sebastian Stasiak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Zwiększanie efektywności programów optymalizacja pamięci część 1
2 literatura podstawowa [Aho2002] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Kompilatory. Reguły, metody i narzędzia, WNT 2002 (tłum. pierwszego wydania amerykańskiego, 1986). [Aho2001] A.V. Aho, R. Sethi, J.D. Ullman, Compilers: Principles, Techniques, and Tools, Pearson Education
3 literatura uzupełniająca [Bentley2008] Jon Bentley, Perełki oprogramowania, wyd. trzecie, WNT, 2008 (tłum. drugiego wydania amerykańskiego, Pearson Education 2000). [Bentley2007] Jon Bentley, Więcej perełek oprogramowania. Wyznania programisty, WNT 2007 (tłum. pierwszego wydania amerykańskiego, Pearson Education 1988). 3
4 literatura uzupełniająca [Kernigham2002] Brian W. Kernigham, Rob Pike, Lekcja programowania, WNT 2002, (tłum. pierwszego wydania amerykańskiego, Pearson Education 1999). [Oram2008] Andy Oram, Greg Wilson (red.), Piękny kod. Tajemnice mistrzów programowania, Helion 2008, (tłum. wydania amerykańskiego, O Reilly Media Inc. 2007). 4
5 literatura uzupełniająca [Barr2005] Adam Barr, Znajdź błąd. Sztuka analizowania kodu, Helion 2005 (tłum. wydania amerykańskiego, Pearson Education 2005). 5
6 literatura uzupełniająca [Cooper2004] Keith D. Cooper, Linda Torczon, Engineering a Compiler, Morgan Kaufmann Publishers, San Francisco, [Goedecker2001] Stefan Goedecker, Adolfy Hoisie, Performance Optimization of Numerically Intensive Codes, Society for Industrial and Applied Mathematics, Philadelphia
7 literatura uzupełniająca [Kaspersky2003], Kris Kaspersky, Code Optimization: Effective Memory Usage, A-LIST, LLC, [Muchnik1997] Steven S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, San Francisco,
8 literatura uzupełniająca [Allen2002] Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures, Morgan Kaufmann Publishers, San Francisco, [Falk2004] Heiko Falk, Peter Marwedel, Source Code Optimization Techniques for Data Flow Dominated Embedded Software, Kluwer Academic Publishers, Boston
9 literatura uzupełniająca [Wolfe1995] Michael Wolfe, High- Performance Compilers for Parallel Computing, Addison Wesley,
10 plan optymalizacja hierarchii pamięci [Muchnick1997] rozdz. 20 [Allen2002] rozdz. 9 optymalizacja dostępu do pamięci [Goedecker2001] rozdz. 6, [Kaspersky2003] rozdz. 3 10
11 plan optymalizacja operacji na pamięci [Kaspersky2003] rozdz. 2 alokacja rejestrów [Cooper2004] rozdz. 13 ograniczenie wykorzystywanej pamięci [Bentley2008] rozdz. 10 [Kernigham2002] rozdz. 7 11
12 optymalizacja hierarchii pamięci rozważamy tutaj techniki optymalizacji kodu, wykorzystujące hierarchię pamięci, w szczególności: pamięci notatnikowe danych i rozkazów przydział rejestrów do elementów tablic 12
13 optymalizacja hierarchii pamięci od lat systemy posiadały pamięć główną i rejestry pamięć jest duża i wolna, a rejestry są małe i szybkie z czasem, różnica między cyklem procesora a czasem dostępu do pamięci wzrastała (wzrost szybkości procesora 50% rocznie, pamięci 20% rocznie) 13
14 optymalizacja hierarchii pamięci aby zapobiec pogarszaniu się wydajności, wprowadzono pamięć notatnikową (cache) między pamięć główną a rejestry, redukując niedopasowanie szybkości pamięć notatnikowa powiela wybrane fragmenty pamięci głównej, zwykle na życzenie sprzętu albo oprogramowania 14
15 optymalizacja hierarchii pamięci odczyt, zapis albo pobranie instrukcji skierowane do adresu reprezentowanego w pamięci notatnikowej jest spełniany zazwyczaj przez pamięć notatnikową, a nie przez pamięć główną efektywność pamięci notatnikowej zależy od cech przestrzennej i czasowej lokalizacji w programie 15
16 optymalizacja hierarchii pamięci jeżeli program wykonuje pętlę, wtedy pierwsza iteracja umieszcza jej kod w pamięci notatnikowej, a kolejne iteracje wykonują go z pamięci notatnikowej, zamiast ładować go z pamięci głównej 16
17 optymalizacja hierarchii pamięci podobnie, jeżeli blok danych jest wykorzystywany powtarzalnie, najlepiej jak jest umieści się go w pamięci notatnikowej i tam właśnie jest dostępny wtedy dane są pobierane z pamięci głównej tylko raz 17
18 optymalizacja hierarchii pamięci z drugiej strony, jeżeli kod i dane interferują w pamięci notatnikowej, czyli zajmują tam te same miejsca, albo gdy dane interferują ze sobą, w ten sposób że ich porcje są odwzorowane na te same bloki w pamięci notatnikowej, to wtedy wydajność znacznie spada 18
19 optymalizacja hierarchii pamięci w najgorszym razie, pamięć notatnikowa nic nie przyspiesza, czyli odczyt, zapis i pobieranie instrukcji nie są szybsze niż w przypadku pamięci głównej system może mieć oddzielne pamięci notatnikowe instrukcji i danych, może też mieć wspólną pamięć notatnikową dla instrukcji i danych 19
20 optymalizacja hierarchii pamięci system ze stronicowaniem ma inny typ pamięci notatnikowej TLB (translationlookaside buffer), do przechowywania informacji o translacji adresów wirtualnych w fizyczne, i odwrotnie 20
21 wpływ pamięci notatnikowej na przykład optymalizację jak efektywność wykonania programu zmienia się z odstępami między indeksami, z jaką następuje dostęp do tablicy gdy odległości są większe niż 32, efektywność maleje 21
22 wpływ pamięci notatnikowej na optymalizację 4 wersje mnożenia macierzy w j. Fortran MM: klasyczne (potrójnie zagnieżdżona pętla do mnożenia A przez B) MMT: z transpozycją macierzy A w pamięci MMB: z podziałem pętli na bloki MMBT: z transpozycją macierzy A i podziałem pętli na bloki 22
23 mnożenie macierzy [Muchnick1997] 23
24 wpływ pamięci notatnikowej na optymalizację efektywność klasycznej wersji jest zależna od rozmiaru macierzy i jej organizacji, i różni się nawet o współczynnik 14 efektywność pozostałych wersji jest bliska maksymalnej i jest stabilna 24
25 optymalizacja pamięci notatnikowej instrukcji cel: zwiększenie ilości trafień 2 podejścia interproceduralne 1 podejście intraproceduralne 3 podejścia i takie i takie 25
26 optymalizacja pamięci notatnikowej instrukcji pobieranie instrukcji wsparte sprzętowo pobieranie sekwencyjne albo z wybranej ścieżki pobieranie instrukcji wsparte programowo pobieranie do pamięci notatnikowej instrukcji znajdujących się w bloku o podanym adresie: iprefetch address 26
27 optymalizacja pamięci notatnikowej instrukcji pobieranie instrukcji wsparte programowo stosowane dla bloków kodu pobieranych pierwszy raz, albo dla bloków stosowanych powtarzalnie programowe wsparcie jedynie wtedy, gdy nie ma sprzętowego 27
28 sortowanie procedur najprostszym i najefektywniejszym zastosowaniem optymalizacji pamięci notatnikowej instrukcji jest sortowanie statycznie powiązanych procedur, zgodnie z relacjami ich wywołania i częstotliwością stosowania 28
29 sortowanie procedur celem jest: umieszczenie procedur blisko wywołań w pamięci wirtualnej, aby ograniczyć ruch stron umieszczenie często stosowanych i powiązanych procedur razem, aby zmniejszyć prawdopodobieństwo kolizji z innymi procedurami w pamięci notatnikowej 29
30 sortowanie procedur jeżeli jest dostępny wynik profilowania (dynamicznej analizy zachowania się programu), należy go uwzględnić jeżeli nie, należy posłużyć się heurystyką, która umieszcza procedury, które się często wywołują blisko siebie (wywołania w pętli powinny być ważniejsze od wywołań spoza pętli) 30
31 sortowanie procedur aby implementować tę ideę, posłużymy się nieskierowanym statycznym grafem wywołań, gdzie każda krawędź jest etykietowana liczbą razy, z jaką dwie procedury na obu jej końcach wywołują tę drugą procedurę 31
32 sortowanie procedur następnie scalamy graf w etapy, na każdym etapie wybierając krawędź o najwyższej wadze i łącząc węzły w jeden, scalając odpowiednie krawędzie i dodając wagi scalanych krawędzi 32
33 sortowanie procedur węzły, które zostały scalone, są umieszczone po sobie w końcowym uporządkowaniu procedur, z wagami połączeń w oryginalnym grafie stosowanymi do wyznaczenia ich wzajemnego porządku 33
34 sortowanie procedur algorytm ICAN tego procesu to procedura Proc_Position( ) ICAN - Informal Compiler Algorithm Notation rodzaj notacji (pseudokodu) do opisu algorytmów ICAN wywodzi się z C, Pascala, Moduli-2 plus naturalna notacja 34
35 sortowanie procedur [Muchnick1997] 35
36 sortowanie procedur funkcja Coalesce_Nodes(T,A,weight,psweight,p1,p2) scala węzły p1 i p2 w jeden węzeł a procedura Flatten(T) trawersuje drzewo binarne reprezentowane przez sekwencję T z lewej do prawej, i tworzy sekwencję liści (Flatten(T)nie jest tu wprost pokazana) 36
37 sortowanie procedur [Muchnick1997] 37
38 graf przepływu w sortowaniu procedur [Muchnick1997] 38
39 graf przepływu wpierw scalamy P2 i P4 do postaci [P2,P4] następnie scalamy P3 i P6 do postaci [P3,P6], potem P5 i [P2,P4], aby otrzymać [P5,[P2,P4]] ostateczny wynik to: [[P1,[P3,P6],[P5,[P2,P4]]],[P7,P8]] 39
40 umieszczenie procedury na krawędzi bloku wymaga modyfikacji konsolidatora, aby umieszczał każdą procedurę na krawędzi bloku w pamięci notatnikowej instrukcji pozwoli to w kolejnych fazach kompilacji pozycjonować często wykonywane segmenty kodu, takie jak pętle, aby zajmowały jak najmniejszą liczbę bloków pamięci notatnikowej 40
41 umieszczenie procedury na krawędzi bloku oraz pozwoli umieścić je blisko albo na krawędzi bloku, ułatwiając zmniejszenie braku trafień w pamięci notatnikowej i ułatwi pobieranie całych grup instrukcji przez superskalarny CPU w celu ich jednoczesnego wykonania w jednym cyklu zegara 41
42 umieszczenie procedury na krawędzi bloku gdy większość bloków jest krótka (4 albo 8 instrukcji), ułatwia to utrzymywanie początków bloków daleko od końca bloków pamięci notatnikowej kompilator może zbierać statystyki, a wyniki profilowania mogą być wykorzystane do oceny, czy umieszczanie procedury na krawędzi jest korzystne 42
43 intraproceduralne pozycjonowanie kodu podejście od dołu do góry Pettisa i Hansena z 1990 roku cel: przesunięcie rzadko wykonywanego kodu poza główną część kodu, oraz: wyrównanie kodu (usunięcie gałęzi niewarunkowych i umieszczenie jak najwięcej gałęzi warunkowych na ścieżce opadającej) 43
44 intraproceduralne pozycjonowanie kodu co powoduje, że większy fragment instrukcji pobieranych do pamięci notatnikowej jest faktycznie wykonywany odmiennie niż w sortowaniu procedur, ten proces jest przeprowadzany podczas kompilacji każdej procedury 44
45 intraproceduralne pozycjonowanie kodu aby to zrobić, zakłada się, że na krawędziach grafu przepływu procedury podane są częstotliwości ich wykonania, uzyskane przez profilowanie albo szacowanie 45
46 intraproceduralne pozycjonowanie kodu algorytm wykonuje przeszukiwanie wstępujące grafu przepływu, budując łańcuchy bloków podstawowych, które być powinny umieszczone jako kod wyrównany, ponieważ krawędzie są wykonywane często 46
47 algorytm pozycjonowania bloków bazowych początkowo, każdy blok bazowy jest sam łańcuchem następnie, w kolejnych krokach, dwa łańcuchy, których odpowiednio ogon i głowa są połączone krawędzią o najwyższej częstotliwości wykonań, są scalone 47
48 algorytm pozycjonowania bloków bazowych jeżeli najwyższa częstotliwość występuje na krawędzi, która nie łączy ogona łańcucha z głową innego łańcucha, łańcuchy nie mogą być scalone na koniec, dokonuje się umieszczenia bloku bazowego poprzez wybór łańcucha wejściowego i przetwarzanie innych łańcuchów zgodnie z wagą połączeń 48
49 algorytm pozycjonowania Block_Position(B,E,r,freq) B zbiór węzłów (bloków bazowych) E zbiór krawędzi r węzeł wejściowy freq odwzorowanie krawędzi na częstość wykonania 49
50 algorytm pozycjonowania[muchnick1997] 50
51 algorytm pozycjonowania 51
52 przykład pozycjonowania bloków bazowych rozważmy przykład [Muchnick1997] 52
53 przykład pozycjonowania bloków bazowych krawędź o największej częstości wykonania jest od B1 do B2, stąd [B1,B2] następna krawędź o największej częstości wykonania jest od B2 do B4, stąd sekwencja jest rozszerzona do [B1,B2,B4] podobnie dodaje się entry oraz B8 w kolejnych dwóch krokach, stąd mamy: [entry,b1,b2,b4,b8] 53
54 przykład pozycjonowania bloków bazowych 54
55 przykład pozycjonowania bloków bazowych następna krawędź o największej częstości wykonania jest od B9 do exit, stąd [B9,exit] w kolejnych krokach [B9,exit] jest rozszerzona do [B6,B9,exit] dwie nowe sekwencje są utworzone [B3,B7] i [B5] 55
56 przykład pozycjonowania bloków bazowych 56
57 przykład pozycjonowania bloków bazowych następnie obliczamy funkcję edges(), podającą liczbę krawędzi do innych sekwencji: edges([entry,b1,b2,b4,b8])=2 edges([b3,b7])=1 edges([b5])=1 edges([b6,b9,exit])=0 57
58 przykład pozycjonowania bloków bazowych następnie porządkujemy sekwencje tak, że ta z entry jest pierwsza, potem są sekwencje zgodnie z porządkiem określonym funkcją edges() na koniec, poprawiamy kod dodając i usuwając gałęzie, aby graf przepływu był równoważny co do efektu z grafem oryginalnym 58
59 wynik intraproceduralnego pozycjonowania kodu [Muchnick1997] 59
60 podział procedury zwiększa efektywność algorytmów sortowania procedur i intraproceduralnego pozycjonowania kodu każda procedura jest dzielona na składnik pierwotny i wtórny pierwotny: zawiera często wykonywane bloki bazowe wtórny: rzadko wykonywane bloki bazowe 60
61 podział procedury to powoduje, że składniki pierwotne są umieszczane blisko siebie w jednej sekcji, podobnie jak wtórne podział procedury wymaga dopasowania granic między składnikami obszary oznaczone p i s oznaczają kod pierwotny i kod wtórny 61
62 podział procedury [Muchnick1997] 62
63 kombinacja procedur intra- i interproceduralnych zmiana kolejności instrukcji w pamięci i rezygnacja z umieszczania pewnych instrukcji w pamięci notatnikowej, doktorat Scotta McFarlinga, Stanford Univ analiza, czy warto wstawiać procedurę (w miejsce jej wywołania) McFarling procedure inlining 63
64 zastąpienie elementów macierzy skalarami jeżeli zastąpimy dostępy do C(i,j) przez zmienną ct, a ct jest przydzielona do rejestru, zmniejszamy liczbę dostępów do pamięci do 2(N 3 N 2) czyli blisko 2 razy skalar zamiast C(i,j) (czasowo) 64
65 mnożenie macierzy [Muchnick1997] 65
66 przykład: rekurencja HIR użycie dwóch zmiennych tymczasowych, t0 i t1 zmniejsza dostępy do pamięci o 40% HIR: High-Level Intermediate Representation 66
67 przykład: rekurencja HIR [Muchnick1997] 67
68 zastąpienie przez skalar zastępowanie zmiennych z indeksami przez skalary, co pozwala przydzielać je do rejestrów, nazywa się zastępowaniem przez skalar (scalar replacement) albo potokowym przetwarzaniem rejestrów (register pipelining) 68
69 zastąpienie przez skalar pokażmy tę metodę w przypadku zagnieżdżeń pętli, nie zawierającej warunków aby ją zastosować, potrzebujemy stałej liczby iteracji pętli pomiędzy odwołaniami do zmiennych indeksowanych 69
70 zastąpienie przez skalar możemy też ułatwić zastąpienie przez skalar poprzez zamianę pętli i fuzję pętli 70
71 zamiana pętli [Muchnick1997] 71
72 fuzja pętli [Muchnick1997] 72
73 zastąpienie przez skalar pętli z if stosujemy trzy tymczasowe zmienne: t2 zamiast a[i-2] t1 zamiast a[i-1] t0 zamiast a[i] 73
74 pętle z if [Muchnick1997] 74
75 kombinacje zastąpień skalarami wpierw zastąpienie skalarami wartości x[i] potem rozwinięcie pętli wewnętrznej (przez współczynnik 3, arbitralny) następnie zastąpienie skalarami wartości y[j] 75
76 zastąpienie skalarami x[i] [Muchnick1997] 76
77 rozwinięcie pętli wewnętrznej [Muchnick1997] 77
78 zastąpienie skalarami y[j] [Muchnick1997] 78
79 optymalizacja pamięci notatnikowej danych zajmiemy się teraz optymalizacją wykorzystania pamięci notatnikowej do kodu numerycznego (inaczej naukowego) przez kod numeryczny rozumiemy program, zwykle w Fortranie, który operuje na dużych tablicach danych, zazwyczaj na wartościach zmiennoprzecinkowych 79
80 optymalizacja pamięci notatnikowej danych wiele z tych programów stosuje wzorce wykorzystania danych o regularnej strukturze, które dają możliwość ponownego wykorzystania danych zanim zostaną usunięte z pamięci notatnikowej 80
81 optymalizacja pamięci notatnikowej danych dysponujemy globalnym układem danych, który zakłada, że mamy dostępny cały program do analizy i transformacji, stąd informacja zebrana przez wszystkie części programu może być wykorzystana przez kompilator do ułożenia wszystkich tablic tak, aby zminimalizować konflikty w pamięci notatnikowej danych 81
82 optymalizacja pamięci notatnikowej danych idea optymalizacji pamięci notatnikowej danych odnosi się do pojedynczych procedur, które eliminują opóźnienie wynikające z pobierania danych z pamięci do pamięci notatnikowej i zapamiętania w niej wyników z rejestrów 82
83 optymalizacja pamięci notatnikowej danych ten typ optymalizacji osiągnął najlepsze wyniki dla kodu numerycznego, któremu większość czasu zajmuje wykonywanie zagnieżdżonych pętli operujących na macierzach wartości numerycznych 83
84 optymalizacja pamięci notatnikowej danych optymalizacje wpierw wyjaśniają wzorce ponownego używania danych w pętlach, a następnie transformują je do postaci wykazującej lokalność odniesienia to znaczy stosują te same lokalizacje danych, albo bloki pamięci notatnikowej są tak blisko w czasie, że wykonują się bez konieczności usuwania danych z pamięci notatnikowej 84
85 optymalizacja pamięci notatnikowej danych główną techniką do określenia wzorców ponownego używania danych w pętlach jest analiza zależności, opisywana oddzielnie oraz transformacja zagnieżdżeń pętli, jako podejście do zbliżenia wykorzystania danych w czasie (transformacje te nie powinny zmieniać wyników obliczeń!) 85
86 transformacje zmieniające wynik obliczeń (0.0, 0.0, 1.0, n) 86
87 transformacje zmieniające wynik obliczeń pętle HIR sumują te same sekwencje wartości zmiennoprzecinkowych, ale dają odmienne wyniki: 0.0, 0.0, 1.0 i n HIR oznacza High-Level Intermediate Representation (sposób lub język reprezentacji) 87
88 optymalizacja pamięci notatnikowej danych istotna jest również technika wyprzedzającego pobierania danych, ukrywającego opóźnienie pobierania danych stosuje się też współdziałanie optymalizacji skalarnych i optymalizacji pamięci, optymalizację pamięci notatnikowej danych dla wskaźników, dynamiczne przydzielanie obiektów danych 88
89 optymalizacja pamięci notatnikowej danych przeprowadza się również integrację optymalizacji pamięci notatnikowej instrukcji (I-cache) i pamięci notatnikowej danych (D-cache) 89
90 wnioski w prezentacji skupiono się na optymalizacji hierarchii pamięci, w szczególności optymalizacji wykorzystania pamięci notatnikowej instrukcji i pamięci notatnikowej danych 90
91 wnioski pozostałe kwestie dotyczące optymalizacji dostępu do pamięci, operacji na pamięci, alokacji rejestrów i ograniczenia wykorzystywanej pamięci, są przedmiotem kolejnych spotkań 91
POZNA SUPERCOMPUTING AND NETWORKING. Zwikszanie efektywnoci programów optymalizacja pamici cz2
Zwikszanie efektywnoci programów optymalizacja pamici cz2 literatura podstawowa [Aho2002] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Kompilatory. Reguły, metody i narzdzia, WNT 2002 (tłum. pierwszego
Bardziej szczegółowoMetody Kompilacji Wykład 1 Wstęp
Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,
Bardziej szczegółowoOptymalizacja oprogramowania - wprowadzenie
Optymalizacja oprogramowania - wprowadzenie Poznaskie Centrum Superkomputerowo Sieciowe Projekt jest współfinansowany ze rodków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego
Bardziej szczegółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoZarządzanie pamięcią operacyjną
SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt
Bardziej szczegółowoWydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych
Bardziej szczegółowoSystem pamięci. Pamięć wirtualna
System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,
Bardziej szczegółowoSystemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych
Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo
Bardziej szczegółowoAlgorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek
Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest
Bardziej szczegółowoTworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Bardziej szczegółowoArchitektura potokowa RISC
Architektura potokowa RISC Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe Podział instrukcji na fazy wykonania
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowoPamięć. Jan Tuziemski Źródło części materiałów: os-book.com
Pamięć Jan Tuziemski Źródło części materiałów: os-book.com Cele wykładu Przedstawienie sposobów organizacji pamięci komputera Przedstawienie technik zarządzania pamięcią Podstawy Przed uruchomieniem program
Bardziej szczegółowoMateriały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych
Materiały pomocnicze do laboratorium 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych 4. Optymalizacja dostępu do pamięci Miary efektywności systemów współbieżnych System
Bardziej szczegółowoANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ
ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A,B,C są tablicami nxn for (int j = 0 ; j
Bardziej szczegółowoTranslacja wprowadzenie
Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986
Bardziej szczegółowoTworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional
Bardziej szczegółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Bardziej szczegółowoAlgorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
Bardziej szczegółowoSortowanie. Bartman Jacek Algorytmy i struktury
Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoKlasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Bardziej szczegółowoPrzetwarzanie potokowe pipelining
Przetwarzanie potokowe pipelining (część A) Przypomnienie - implementacja jednocyklowa 4 Add Add PC Address memory ister # isters Address ister # ister # memory Wstęp W implementacjach prezentowanych tydzień
Bardziej szczegółowoSystem pamięci. Pamięć wirtualna
System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoZapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Bardziej szczegółowoZarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Bardziej szczegółowoStronicowanie w systemie pamięci wirtualnej
Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni
Bardziej szczegółowoPRZYDZIAŁ PAMIĘCI OPERACYJNEJ
PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Wstęp Pamięć komputera wielka tablica słów (bajtów)
Bardziej szczegółowo10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu
Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing
Bardziej szczegółowoLiteratura. 11/16/2016 Przetwarzanie równoległe - wstęp 1
Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing
Bardziej szczegółowoEFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ
EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A[i][*] lokalność przestrzenna danych rózne A,B,C są
Bardziej szczegółowoModelowanie procesów współbieżnych
Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:
Bardziej szczegółowoPodstawy programowania.
Kod przedmiotu: PPR Podstawy programowania. Rodzaj przedmiotu: kierunkowy; obowiązkowy Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Poziom studiów: pierwszego stopnia Profil
Bardziej szczegółowoPamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4
Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,
Bardziej szczegółowoProgramowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna
Bardziej szczegółowoWydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Wydajność programów sekwencyjnych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci i przetwarzania
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoSkalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
Bardziej szczegółowoPrzygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,
Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią
Bardziej szczegółowoWykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Bardziej szczegółowoSystem pamięci. Pamięć wirtualna
System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni
Bardziej szczegółowoProcesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]
Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową
Bardziej szczegółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoAlgorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010
Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność
Bardziej szczegółowoAlgorytmy dla maszyny PRAM
Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań
Bardziej szczegółowoArchitektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej
Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej Konflikty w przetwarzaniu potokowym Konflikt danych Data Hazard Wstrzymywanie kolejki Pipeline Stall Optymalizacja kodu (metody programowe)
Bardziej szczegółowoEnergooszczędne programowanie
Projektowanie energooszczędnych systemów wbudowanych dr inż. Ireneusz Brzozowski C-3, p. 512 WIET KATEDRA ELEKTRONIKI Elektronika i Telekomunikacja, Systemy Wbudowane www.agh.edu.pl Projektowanie energooszczędnych
Bardziej szczegółowoProjektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
Bardziej szczegółowoWstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
Bardziej szczegółowoAlgorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoProgramowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu
Bardziej szczegółowoOptymalizacja skalarna. Piotr Bała. bala@mat.uni.torun.pl. Wykład wygłoszony w ICM w czercu 2000
Optymalizacja skalarna - czerwiec 2000 1 Optymalizacja skalarna Piotr Bała bala@mat.uni.torun.pl Wykład wygłoszony w ICM w czercu 2000 Optymalizacja skalarna - czerwiec 2000 2 Optymalizacja skalarna Czas
Bardziej szczegółowo1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
Bardziej szczegółowoWedług raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j
Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy
Bardziej szczegółowoProgramowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Bardziej szczegółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych
Bardziej szczegółowoECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
Bardziej szczegółowoKsięgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoReprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów
Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów
Bardziej szczegółowoProgramowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Bardziej szczegółowoAlgorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze
Bardziej szczegółowoTworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Bardziej szczegółowoSprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Bardziej szczegółowoSortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Bardziej szczegółowoZrównoleglenie i przetwarzanie potokowe
Zrównoleglenie i przetwarzanie potokowe Zrównoleglenie wysoka wydajność pozostaje osiągnięta w efekcie jednoczesnego wykonania różnych części zagadnienia. Przetwarzanie potokowe proces jest rozdzielony
Bardziej szczegółowo1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
Bardziej szczegółowowagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Bardziej szczegółowoTemat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Bardziej szczegółowoarchitektura komputerów w. 8 Zarządzanie pamięcią
architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności
Bardziej szczegółowoMetody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Bardziej szczegółowoUTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386
Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
Bardziej szczegółowoSystemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
Bardziej szczegółowoKONSTRUKCJA KOMPILATORÓW
KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,
Bardziej szczegółowoKompresja danych Streszczenie Studia Dzienne Wykład 10,
1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny
Bardziej szczegółowoWydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Wydajność obliczeń a architektura procesorów Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność komputerów Modele wydajności-> szacowanie czasu wykonania zadania Wydajność szybkość realizacji wyznaczonych
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoMATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018
Analiza efektywności mnożenia macierzy w systemach z pamięcią współdzieloną MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018 1 Mnożenie macierzy dostęp do pamięci podręcznej
Bardziej szczegółowoSortowanie zewnętrzne
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często
Bardziej szczegółowoProgramowanie Współbieżne. Algorytmy
Programowanie Współbieżne Algorytmy Sortowanie przez scalanie (mergesort) Algorytm :. JEŚLI jesteś rootem TO: pobierz/wczytaj tablice do posortowania JEŚLI_NIE to pobierz tablicę do posortowania od rodzica
Bardziej szczegółowoAlgorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie
Bardziej szczegółowoKARTA KURSU. Wstęp do programowania
KARTA KURSU Nazwa Nazwa w j. ang. Wstęp do programowania Introduction to Programming Kod Punktacja ECTS* 6 Koordynator dr inż. Magdalena Andrzejewska Zespół dydaktyczny: dr inż. Magdalena Andrzejewska
Bardziej szczegółowoAdam Korzeniewski p Katedra Systemów Multimedialnych
Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Operacja na dwóch funkcjach dająca w wyniku modyfikację oryginalnych funkcji (wynikiem jest iloczyn splotowy). Jest
Bardziej szczegółowoZarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci
Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów
Bardziej szczegółowo