OpenMP Szkolenie dla uytkowniku
|
|
- Zdzisław Wrona
- 7 lat temu
- Przeglądów:
Transkrypt
1 OpenMP Szkolenie dla uytkowniku w zasobów w PCSS Mirosław Kupczyk miron@man.poznan.pl PCSS
2 Plan 11:00-12:30 Wykład Standard OpenMP Dyrektywy kompilatora Sterowanie w obszarach równoległych 12:30-12:45 Przerwa 12:45-14:15 wiczenia praktyczne 2
3 OpenMP Open specifications for Multi Processing to standard programowania komputerów równoległych (SMP) implementowany na wiekszoci platformach obliczeniowych i dostarczany w postaci API dla programisty. Dostarcza mechanizmów korzystajcych w sposób jawny z wielowtkowoci i pamici współdzielonej w trybie równoległym. PCSS 3
4 Co to jest OpenMP!= MPI Dyrektywy dla kompilatora Biblioteki procedur (runtime) Zmienne rodowiskowe Przenaszalno (na 99,99%) Wsparcie dla C/C++, Fortran Znakomity do przetwarzania równoległego na poziomie ptli (z pewnymi wyjtkami dot. zalenoci danych i zmiennych ptli). Standaryzacja OpenMP nie wspiera systemów z rozproszon pamici (np. klastry) Implementacje nie s identycznie implementowane w systemach. Brak gwarancji wydajnego/optymalnego wykorzystania pamici współdzielonej. PCSS 4
5 Historia Wczesne lata 90-te rozszerzenia dla Fortrana. Draft ANSI X3H5 in 1994 (nigdy nie zaakceptowany) Oficjalne prace nad standardem zaczły si w 1997 (Compaq/HP, SGI, Intel, US DOE, IBM, SUN,...) Oct 1997: Fortran version 1.0 Oct 1998: C/C++ version 1.0 Nov 2000: Fortran version 2.0 Mar 2002: C/C++ version 2.0 May 2005: C/C++ and Fortran version Uwaga: niektóre dyrektywy zmieniły nazw w kolejnych wersjach OpenMP. PCSS 5
6 Dostpne na komputerach KDM SGI Origin 3800 (grape) 96 procesorów SGI Altix 3700 (guarana) 128 procesorów Równie na klastrach: Intel IA-64 (sherwood) wzły 2-u procesorowe AMD Opteron64 (fangorn) wzły 2-u procesorowe (2 * 2 rdzenie) Uruchamianie zada OpenMP w klastrze rozproszonym: cluster-openmp nastpne szkolenie!! PCSS 6
7 Model programowania Model bazuje na tworzeniu i usuwaniu wtków w obszarach równoległych [w skr. OR] (fork-join). Programista decyduje jawnie (w kodzie programu) o tym, które i jakie wtki bd wykonywa si równolegle. Zawsze startuje pojedyczy proces. Tworzy n-1 wtków w OR. OR koczy si synchronizacj i porzdkowaniem. Zostaje master. API oferuje zagniedzony parallelizm i dynamiczne tworzenie wtków (zmiana liczby wtków w aktywnym RO). Implementacje rzadko wspieraj. Standard nie wspomina o I/O PCSS 7
8 Przykład programu w C/C++ #include <omp.h> main () { int var1, var2, var3; // Kod sekwencyjny:... /* Pocztek obszaru równoległego. Tworzenie wtków. Ustalenie zasiegu zmiennych */ #pragma omp parallel private(var1, var2) shared(var3) { // Obszar równoległy, wykonywany przez wszystkie wtki:.. // Koniec obszaru równoległego. Synchronizacja i likwidacja wtków. } // Pozostały kod sekwencyjny:.. return 0; } PCSS 8
9 Przykład programu w Fortranie PROGRAM HELLO INTEGER VAR1, VAR2, VAR3 Serial code... Beginning of parallel section. Fork a team of threads. Specify variable scoping!$omp PARALLEL PRIVATE(VAR1, VAR2) SHARED(VAR3) Parallel section executed by all threads.. All threads join master thread and disband!$omp END PARALLEL Resume serial code.. END PCSS 9
10 Format dyrektywy C/C++ #pragma omp nazwa dyrektywy [warunek1,...] Nowa linia NL Wymagane Wystpuje zawsze po pragmie i przed warunkami Opcjonalne. Porzdek dowolny Wymagane. Poprzedza blok równoległy. Przykład: #pragma omp parallel default(shared) private(alfa, beta, i, j, k) Zasady ogólne: - Case sensitive; - Konwecja dyrektywy odpowiednia dla C/C++; - Tylko jedna nazwa na dyrektyw; - Kada dyrektywa dotyczy najbliszego nastpujcego bloku kodu; - Długa dyrektywa moe zosta przeniesiona do kolejnej linii po znaku \. PCSS 10
11 Zasig g dyrektywy Obszar statyczny Ustrukturyzowany kod programu wystpujcy zaraz po dyrektywie. Nie uruchamia równoległych procedur, nie generuje kopii pliku ródłowego. Sierota Dyrektywa niezalena od dyrektywy nadrzdnej. Istnieje poza obszarem ustrukturyzowanego kodu dyrektywy. Moe wywoływa procedury i pliki z kodami. Obszar dynamiczny Zawiera obszary: statyczny i swoich osieroconych dyrektyw. Wane, poniewa w przypadku błdnie wpisanej dyrektywy program równie moe da wyniki (właciwe lub nie). PCSS 11
12 Lista dyrektyw omp #pragma omp parallel for sections single master critical barrier atomic flush ordered PCSS 12
13 PARALLEL C/C++ Fortran #pragma omp parallel [clause...] newline if (scalar_expression) private (list) shared (list) default (shared none) firstprivate (list) reduction (operator: list) copyin (list) structured_block!$omp PARALLEL [clause...] IF (scalar_logical_expression) PRIVATE (list) SHARED (list) DEFAULT (PRIVATE SHARED NONE) FIRSTPRIVATE (list) REDUCTION (operator: list) COPYIN (list) block!$omp END PARALLEL Uwagi: - Kiedy wtek (master) osignie obszar PARALLEL, tworzy zespół wtków. Master jest członkiem zespołu i ma nr 0. - Kod jest duplikowany i kady z wtków go wykonuje. - Na kocu obszaru jest bariera, któr przekracza tylko wtek master. - W przypadku zakoczenia si wtku w obszarze PARALLEL, wszystkie wtki w zespole s koczone a stan pracy w takim punkcie jest nieokrelony (nie musi to oznacza koca całego programu). - Zagniedzenie moliwe po ustawieniu zmiennej rodowiskowej: OMP_NESTED=true Wówczas liczba wtków programu (runtime) wyniesie: n^2. PCSS 13
14 O wtkach... w Liczba wtków w obszarze PARALLEL: > setenv OMP_NUM_THREADS 16 albo funkcja API: #include <omp.h> omp_set_num_threads( 16 ) ; Moe zalee od implementacji bibliotek OpenMP, np. liczba procesorów w wle. Numeracja wtków: <0..N-1> Dynamiczna: omp_get_dynamic(); sprawdzenie, jeli wspiera to: omp_set_dynamic(); lub ustaw zmiennrodowiskow: > setenv OMP_DYNAMIC TRUE PCSS 14
15 Warunki IF Warunek wejcia do obszaru PARALLEL: Fortran:.TRUE. C/C++: nie-zero W przeciwnym razie wtek master wykona blok kodu sekwencyjnie. Nie wolno dokonywa skoków do/na zewntrz obszaru równoległego! Równie nie wolno skaka pomidzy niezalenymi obszarami równoległymi. PCSS 15
16 Przykład C/C++ #include <omp.h> main () { int nthreads, tid; /* Fork a team of threads giving them their own copies of variables */ #pragma omp parallel private(tid) { /* Obtain and print thread id */ tid = omp_get_thread_num(); printf("hello World from thread = %d\n", tid); /* Only master thread does this */ if (tid == 0) { nthreads = omp_get_num_threads(); printf("number of threads = %d\n", nthreads); } } /* All threads join master thread and terminate */ > export OMP_NUM_THREADS=8 > icc -openmp hello.c >./a.out Hello World from thread = 0 Number of threads = 8 Hello World from thread = 1 Hello World from thread = 2 Hello World from thread = 5 Hello World from thread = 4 Hello World from thread = 3 Hello World from thread = 6 Hello World from thread = 7 Uwaga na nieporzdek w dostpie do urzdzenia tty. } PCSS 16
17 Sterowanie w obszarze równoległym Ptla: for() Niezalene sekcje (równoległo na poziomie procedur) Serializacja danego kodu PCSS 17
18 Ptla C/C++ #pragma omp for [clause...] schedule (type [,chunk]) ordered private (list) firstprivate (list) lastprivate (list) shared (list) reduction (operator: list) nowait NL for(...){ ciało ptli } #pragma omp parallel private(i) { #pragma omp for for(i=0;i<400;i++) {... } } PCSS 18
19 warunki SCHEDULE STATIC ptla jest dzielona na fragmenty o wielkoci chunk-size a jej kawałki przydzielone arbitralnie kademu z wtków. DYNAMIC - ptla jest dzielona na fragmenty o wielkoci chunk-size a jej kawałki przydzielone dynamicznie kademu z wtków. Warto włczy, gdy krok iteracji ma z góry nieznany czas wykonania. GUIDED chunk-size jest obliczany na podstawie liczby pozostałych niewykonanych jeszcze iteracji. RUNTIME zaley od zmiennej rodowiskowej OMP_SCHEDULE NOWAIT wtki nie synchronizuj si na kocu ptli. Ograniczenia ptli: - Liczba iteracji znana. Ptla nie moe mie charakteru ptli do...while. - Nie wolno wykonywa instrukcji skoku poza ptle. - Chunk-size musi mie niezmienn wielko (int). PCSS 19
20 SECTIONS #pragma omp sections [clause...] private (list) firstprivate (list) lastprivate (list) reduction (operator: list) nowait NL { #pragma omp section newline - Obszar w którym wykonuj si bloki kodu w odzielnych wtkach (nie iteracje). - Kada sekcja jest wykonywana tylko raz przez wtek. - Na kocu sections jest bariera, wykonywana zawsze i niezalenie od ustawienia nowait. - Jeli liczba sekcji jest wiksza ni liczba wtków implementacja OpenMP zadecyduje o rezultacie. structured_block #pragma omp section newline structured_block } PCSS 20
21 SINGLE - Fragment kodu zostanie wykonany tylko przez jeden wtek. Np.. Operacja I/O. Reszta wtków czeka. - Na kocu bloku jest domylnie bariera, niezalenie od ustawienia NOWAIT. #pragma omp single [clause...] private (list) firstprivate (list) nowait NL structured_block PCSS 21
22 Synchronizacja wtkw tków Przykład: Wtek 1: increment(x) { x = x + 1; } Wtek 2: increment(x) { x = x + 1; } Bez dodatkowych załoe, rezultat powyszych operacji bdzie nieprzewidywalny, tzn. warto zmiennej x bdzie zwikszona albo o 1, albo o 2. OpenMP ma mechanizmy do sterowania kolejnoci wykonywania si wtków. Dyrektywy: MASTER CRITICAL BARRIER ATOMIC FLUSH ORDERED PCSS 22
23 Synchronizacja c.d. #pragma omp master NL structured_block Tylko watek master wykonuje dany blok kodu. Brak bariery. #pragma omp critical [ nazwa ] NL structured_block Fragment kodu bdzie wykonany przez wszytkie wtki. Tylko jeden wtek działa w danym czasie, pozostałe czekaj na wykonanie. Nazw nadaje programista, moe istnie wiele obszarów CRITICAL z tak sam nazw, wówczas takie obszary s traktowane jako jeden. #include <omp.h> main() { int x; x = 0; #pragma omp parallel shared(x) { } #pragma omp critical x = x + 1; } /* end of parallel section */ PCSS 23
24 Synchronizacja c.d. #pragma omp barrier NL #pragma omp atomic NL statement_expression Odpowiednik sekcji mini-critical. Operacja atomowa na pamici. #pragma omp flush (list) NL Punkt synchronizacji po którym implementacja OpenMP musi zapewni spójno pamici. Konieczna równie w systemach cc (cache coherent) np. SGI Origin, Altix Domylnie jest wykonywana w ramach dyrektyw: barrier parallel critical ordered for sections single pocztek i koniec pocztek i koniec pocztek i koniec koniec koniec koniec #pragma omp ordered NL structured_block Iteracje w ptli wykonaj si w tym samym porzdku co ptla na jednym procesorze. Dotyczy tylko dyrektywy omp for. Moe si zday, e cz mocy obliczeniowej zostanie niewykorzystana (w rodku jest wywoływane omp flush). PCSS 24
25 THREADPRIVATE #include <omp.h> int a, b, i, tid; float x; #pragma omp threadprivate(a, x) main () { /* Explicitly turn off dynamic threads */ omp_set_dynamic(0); printf("1st Parallel Region:\n"); #pragma omp parallel private(b,tid) { tid = omp_get_thread_num(); a = tid; b = tid; x = 1.1 * tid +1.0; printf("thread %d: a,b,x= %d %d %f\n",tid,a,b,x); } /* end of parallel section */ printf("************************************\n"); printf("master thread doing serial work here\n"); printf("************************************\n"); printf("2nd Parallel Region:\n"); #pragma omp parallel private(tid) { tid = omp_get_thread_num(); printf("thread %d: a,b,x= %d %d %f\n",tid,a,b,x); } /* end of parallel section */ } Wynik: 1st Parallel Region: Thread 0: a,b,x= Thread 2: a,b,x= Thread 3: a,b,x= Thread 1: a,b,x= ************************************ Master thread doing serial work here ************************************ 2nd Parallel Region: Thread 0: a,b,x= Thread 3: a,b,x= Thread 1: a,b,x= Thread 2: a,b,x= Globalizacja zmiennych lokalnych z punktu widzenia wtku. Wartoci zdefiniowanych zmiennych s zachowywane pomidzy obszarami równoległymi. Dynamiczne tworzenie wtków naley w tym przypadku wyłczy. PCSS 25
26 #include <omp.h> main () { int i, n, chunk; float a[100], b[100], result; /* Some initializations */ n = 100; chunk = 10; result = 0.0; for (i=0; i < n; i++) { a[i] = i * 1.0; b[i] = i * 2.0; } #pragma omp parallel for \ default(shared) private(i) \ schedule(static,chunk) \ reduction(+:result) for (i=0; i < n; i++) result = result + (a[i] * b[i]); printf("final result= %f\n",result); } REDUCTION Proste operacje na zagregowanych zmiennych prywatnych. Składnia: reduction (operator: lista) Zmienne operandy typu prostego (skalarne), koniecznie jako SHARED. Operator nieprzeciony: +, *, -, /, &, ^,, &&, Uwaga: reguła łcznoci argumentów zmiennoprzecinkowych moe powodowa róne wyniki. PCSS 26
27 warunki / dyrektywy Dyrektywa Warunek PARALLEL DO/for SECTIONS SINGLE PARALLEL DO/for PARALLEL SECTIONS IF PRIVATE SHARED DEFAULT FIRSTPRIVATE LASTPRIVATE REDUCTION COPYIN SCHEDULE ORDERED NOWAIT PCSS 27
28 Uyteczne informacje Zadanie równoległe zlecamy do kolejki przeznaczonej dla zada równoległych. Do programisty naley takie wykorzystanie zasobów, by minimalizowa straty mocy obliczeniowej w obszarach nierównoległych kodu. Administrator dopuszcza zwikszenie liczby slotów czasowych na maszynach. Zwykle jest to ok. 10% liczby procesorów. Jeli braknie pamici lokalnej dla wtku uywamy: export KMP_STACKSIZE= PCSS 28
29 wiczenia > ssh guarana.man.poznan.pl nazwa uytkownika: ***** hasło: ***** wget PCSS 29
30 Altix3700 Niederministyczny czas wykonania zadania równoległego w zwizku z rón odległoci (hopy) pomidzy procesorami cecha architektury. Mona temu zaradzi! PCSS 30
31 Pierwszy program 1. Zobacz plik:> cat hello.c 2. Kompilacja: > icc -openmp hello.c -ohello hello.c(8) : (col. 1) remark: OpenMP DEFINED REGION WAS PARALLELIZED. 3. Uruchamianie w systemie kolejkowym PBS: Przygotuj plik konfiguracyjny: > cat hello.sh #!/bin/bash #PBS -l ncpus=4 #PBS -l mem=3gb export OMP_NUM_THREADS=4 /home/staff/miron/progs/openmp/hello 4. Zlecenie do PBS: > qsub hello.sh 5184.guarana.man.poznan.pl 5. Status zadania w PBS: > qstat 5184.guarana.man.poznan.pl 6. Pliki wynikowe: -rw miron staff :47 hello.sh.e5184 -rw miron staff :47 hello.sh.o > cat hello.sh.o5184 Hello World from thread = 0 Number of threads = 4 Hello World from thread = 3 Hello World from thread = 1 Hello World from thread = 2 8. Wykonaj go kilka razy!! PCSS 31
32 Mnoenie macierzy (ptle) 1. Zobacz plik:> cat multi.c 2. Kompilacja: > icc -openmp multi.c -omulti 3. Uruchamianie w systemie kolejkowym PBS: Przygotuj plik konfiguracyjny: > cat multi.sh #!/bin/bash #PBS -l ncpus=8 #PBS -l mem=3gb export OMP_NUM_THREADS=8 ulimit -s /home/staff/miron/progs/openmp/multi 4. Zlecenie do PBS: > qsub multi.sh 5184.guarana.man.poznan.pl 5. Status zadania w PBS: > qstat 5184.guarana.man.poznan.pl 6. Pliki wynikowe: -rw miron staff :47 hello.sh.e5184 -rw miron staff :47 hello.sh.o > cat hello.sh.o Historia zadania: Prosty accounting: tracejob -n <liczba_dni_wstecz> <nr_zadania> PCSS 32
33 Sekcje 1. Zobacz plik:> cat section.c 2. Kompilacja: > icc -openmp section.c -osection 3. Uruchamianie w systemie kolejkowym PBS: Przygotuj plik konfiguracyjny: > cat section.sh #!/bin/bash #PBS -l ncpus=8 #PBS -l mem=3gb export OMP_NUM_THREADS=8 /home/staff/miron/progs/openmp/section 4. Zlecenie do PBS: > qsub section.sh 5184.guarana.man.poznan.pl 5. Status zadania w PBS: > qstat 5184.guarana.man.poznan.pl 6. Pliki wynikowe: -rw miron staff :47 hello.sh.e5184 -rw miron staff :47 hello.sh.o > cat hello.sh.o Historia zadania: Prosty accounting: tracejob -n <liczba_dni_wstecz> <nr_zadania> PCSS 33
34 Błdy do znalezienia bug1.c PCSS 34
35 Błdy do znalezienia bug1.c Pomidzy PARALLEL FOR i for() nie powinny znale siadne instrukcje. PCSS 35
36 Błdy do znalezienia bug2.c PCSS 36
37 Błdy do znalezienia bug2.c Zasig zmiennych tid i total jest błdny. Tid i total powinny by prywatne. Co programista chciał przez to uzyska (for.. )? PCSS 37
38 Błdy do znalezienia bug3.c PCSS 38
39 Błdy do znalezienia bug3.c Z definicji dyrektywa omp_barrier nie moe by ulokowana na zewntrz bloku sekcji w obszrze SECTIONS. PCSS 39
40 Błdy do znalezienia bug4.c PCSS 40
41 Błdy do znalezienia bug4.c Stos wtku jest zbyt mały (SEGV). # This is for all systems limit stacksize unlimited (albo: ulimit -s dua liczba) # This is for IBM AIX systems setenv XLSMPOPTS "stack= " # This is for IA-32 Linux systems setenv KMP_STACKSIZE PCSS 41
42 Błdy do znalezienia bug5.c PCSS 42
43 Błdy do znalezienia bug5.c deadlock > bug5fix.c PCSS 43
44 Błdy do znalezienia bug6.c PCSS 44
45 Błdy do znalezienia bug6.c Zły zasig zmiennej sum. PCSS 45
Wprowadzenie do OpenMP
Wprowadzenie do OpenMP OZUKO Kamil Dworak OZUKO Wprowadzenie do OpenMP Kamil Dworak 1 / 25 OpenMP (ang. Open Multi-Processing) opracowany w 1997 przez radę Architecture Review Board, obliczenia rówoległe
OpenMP. Programowanie aplikacji równoległych i rozproszonych. Wykład 2. Model programowania. Standard OpenMP. Dr inż. Tomasz Olas
OpenMP Programowanie aplikacji równoległych i rozproszonych Wykład 2 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska OpenMP (Open Multi-Processing)
Wprowadzenie do zrównoleglania aplikacji z wykorzystaniem standardu OpenMP
OpenMP p. 1/4 Wprowadzenie do zrównoleglania aplikacji z wykorzystaniem standardu OpenMP Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska OpenMP OpenMP
Przetwarzanie Równoległe i Rozproszone
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Programowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1
Programowanie systemów z pamięcią wspólną specyfikacja OpenMP Krzysztof Banaś Obliczenia równoległe 1 OpenMP Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
Programowanie współbieżne Wstęp do OpenMP. Rafał Skinderowicz
Programowanie współbieżne Wstęp do OpenMP Rafał Skinderowicz Czym jest OpenMP? OpenMP = Open Multi-Processing interfejs programowania aplikacji (API) dla pisania aplikacji równoległych na komputery wieloprocesorowe
Elementy składowe: Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
OpenMP Elementy składowe: o o o dyrektywy dla kompilatorów funkcje biblioteczne zmienne środowiskowe Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Patryk Mach Uniwersytet Jagielloński, Instytut Fizyki im. Mariana Smoluchowskiego OpenMP (Open Multi Processing) zbiór dyrektyw kompilatora, funkcji
wiczenia MPI-2 Mirosław Kupczyk PCSS,
wiczenia MPI-2 Mirosław Kupczyk Miroslaw.Kupczyk@man.poznan.pl PCSS, 12.06.2006 http://szkolenia.man.poznan.pl Kompilacja i uruchomienie Origin 3800, Irix 6.5.25f MPT 1.9 Z linii komend: > cc -64 prog.c
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP.
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP. 1 OpenMP Standard rozwinięty i zdefiniowany w latach 90 przez grupę specjalistów z przemysłu. Strona www: www.openmp.org Składa się ze zbioru
Open MP wer Rafał Walkowiak Instytut Informatyki Politechniki Poznańskiej Jesień 2014
Open MP wer. 2.5 Wykład PR część 3 Rafał Walkowiak Instytut Informatyki Politechniki Poznańskiej Jesień 2014 OpenMP standard specyfikacji przetwarzania współbieżnego uniwersalny (przenośny) model równoległości
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP.
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP. 1 OpenMP Standard rozwinięty i zdefiniowany w latach 90 przez grupę specjalistów z przemysłu. Strona www: www.openmp.org Składa się ze zbioru
Open MP. Rafał Walkowiak Instytut Informatyki Politechniki Poznańskie Jesień 2011
Open MP wersja 2.5 Rafał Walkowiak Instytut Informatyki Politechniki Poznańskie Jesień 2011 OpenMP standard specyfikacji przetwarzania współbieŝnego uniwersalny (przenośny) model równoległości typu fork-join
Wyklad 11 Języki programowania równoległego
Wyklad 11 Języki programowania równoległego Części wykładu: 1. Środowisko programu równoległego - procesy i wątki 2. Podstawowe problemy języków programowania równoległego 3. Języki programowania w środowisku
OpenMP część praktyczna
.... OpenMP część praktyczna Zbigniew Koza Wydział Fizyki i Astronomii Uniwersytet Wrocławski Wrocław, 17 marca 2011 Zbigniew Koza (WFiA UWr) OpenMP część praktyczna 1 / 34 Spis treści Spis treści...1
Jędrzej Ułasiewicz Programowanie aplikacji równoległych 1. OpenMP
Jędrzej Ułasiewicz Programowanie aplikacji równoległych 1 1. Wprowadzenie...2 2. Model Programowania...3 3. Sterowanie równoległością...5 3.1 Pragma parallel...6 3.2 Pragmy sterujące podziałem pracy...8
Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>
Architektura, oprogramowanie i uytkowanie klastra PCSS Marek Zawadzki Plan prezentacji: klastry krótkie wprowadzenie klaster PCSS budowa jak otrzyma konto na klastrze sposób dostpu
Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm
Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm Streszczenie Tematem pracy jest standard OpenMP pozwalający na programowanie współbieŝne w systemach komputerowych
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
Programowanie Rozproszone i Równoległe
Programowanie Rozproszone i Równoległe OpenMP (www.openmp.org) API do pisania wielowątkowych aplikacji Zestaw dyrektyw kompilatora oraz procedur bibliotecznych dla programistów Ułatwia pisanie programów
Wprowadzenie do obsługi systemów obliczeniowych PCSS
Wprowadzenie do obsługi systemów obliczeniowych PCSS Marcin Pospieszny Poznańskie Centrum Superkomputerowo-Sieciowe 17 listopada 2011 Plan prezentacji 1 Architektura maszyn 2 Linux: podstawy 3 PBS 4 Aplikacje
HPC na biurku. Wojciech De bski
na biurku Wojciech De bski 22.01.2015 - co to jest? High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one
PARADYGMATY I JĘZYKI PROGRAMOWANIA. Programowanie współbieżne... (w14)
PARADYGMATY I JĘZYKI PROGRAMOWANIA Programowanie współbieżne... (w14) Treść 2 Algorytmy równoległe. Metoda sum prefiksowych Mnożenie tablic OpenMP Podstawy CUDA Informacja Sumy prefiksowe 3 Przykłady z
PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.
P O L I T E C H N I K A S Z C Z E C I Ń S K A Wydział Informatyki PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP. Autor: Wojciech
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski
Jak ujarzmić hydrę czyli programowanie równoległe w Javie dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski Prawo Moore a Ekonomicznie optymalna liczba tranzystorów w układzie scalonym zwiększa się
Tworzenie 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
Sposoby przekazywania parametrów w metodach.
Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Patryk Mach Uniwersytet Jagielloński, Instytut Fizyki im. Mariana Smoluchowskiego Zadania w OpenMP technika zrównoleglania bardziej złożonch problemów,
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP ciąg dalszy.
Programowanie maszyn z pamięcią wspólną w standardzie OpenMP ciąg dalszy. 1 Dyrektywa atomic Często sekcja krytyczna polega na uaktualnieniu jednej lokacji w pamięci. OpenMP dostarcza dyrektywę atomic
Tworzenie 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
Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1
Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące
Programowanie Proceduralne
Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest
Programowanie Współbieżne
Programowanie Współbieżne Agnieszka Łupińska 5 października 2016 Hello World! helloworld.cu: #include global void helloworld(){ int thid = (blockidx.x * blockdim.x) + threadidx.x; printf("hello
Programowanie współbieżne OpenMP wybrane wydajność. Rafał Skinderowicz
Programowanie współbieżne OpenMP wybrane wydajność Rafał Skinderowicz OpenMP niskopoziomowa synchronizacja OpenMP udostępnia mechanizm zamków (lock) znany z typowych bibliotek programowania współbieżnego
Tworzenie 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
Programowanie Współbieżne
Programowanie Współbieżne MPI ( główne źródło http://pl.wikipedia.org/wiki/mpi) 1 Historia Początkowo (lata 80) różne środowiska przesyłania komunikatów dla potrzeb programowania równoległego. Niektóre
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
16. Taksonomia Flynn'a.
16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się
Proces tworzenia programu:
Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,
Korutyny Wykład13,str1 tak działa podprogram: PROGRAM GŁÓWNY wywołanie PODPROGRAM tak działają korutyny: KORUTYNA A resume B resume B KORUTYNA B resume A Korutyny Wykład13,str2 Korutyny mają zwykle więcej
Użytkowanie systemów obliczeniowych PCSS Artur Trojanowski
Użytkowanie systemów obliczeniowych PCSS 13.01.2016 Artur Trojanowski Plan prezentacji Architektura maszyn Zwiedzanie serwerowni Opis systemów kolejkowych Dostęp do maszyn Prowadzenie obliczeń Narzędzia
OpenMP środowisko programowania komputerów równoległych ze wspólną pamięcią
Pro Dialog 15 (2003), 107 121 Wydawnictwo NAKOM Poznań OpenMP środowisko programowania komputerów równoległych ze wspólną pamięcią Monika DEMICHOWICZ, Paweł MAZUR Politechnika Wrocławska, Wydział Informatyki
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
Wprowadzenie do kompilatorów
Wprowadzenie do kompilatorów Czy ja kiedykolwiek napisz jaki kompilator? Jakie zadania ma do wykonania kompilator? Czy jzyk formalny to rodzaj jzyka programowania? Co to jest UML?, Czy ja kiedykolwiek
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
System obliczeniowy laboratorium oraz. mnożenia macierzy
System obliczeniowy laboratorium.7. oraz przykładowe wyniki efektywności mnożenia macierzy opracował: Rafał Walkowiak Materiały dla studentów informatyki studia niestacjonarne październik 1 SYSTEMY DLA
Wstęp do programowania
Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład
Wstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!
Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Program Sprzeda wersja 2011 Korekty rabatowe
Autor: Jacek Bielecki Ostatnia zmiana: 14 marca 2011 Wersja: 2011 Spis treci Program Sprzeda wersja 2011 Korekty rabatowe PROGRAM SPRZEDA WERSJA 2011 KOREKTY RABATOWE... 1 Spis treci... 1 Aktywacja funkcjonalnoci...
Wstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
O superkomputerach. Marek Grabowski
O superkomputerach Marek Grabowski Superkomputery dziś Klastry obliczeniowe Szafy (od zawsze) Bo komputery są duże Półki i blade'y (od pewnego czasu) Większe upakowanie mocy obliczeniowej na m^2 Łatwiejsze
Wstp. Warto przepływu to
177 Maksymalny przepływ Załoenia: sie przepływow (np. przepływ cieczy, prdu, danych w sieci itp.) bdziemy modelowa za pomoc grafów skierowanych łuki grafu odpowiadaj kanałom wierzchołki to miejsca połcze
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ 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 zasad
Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.
Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do
Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 4 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Jak używać w MPI? Donald Knuth: We should forget about small efficiencies, say about 97% of
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Delphi Laboratorium 3
Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,
... Ireneusz Mrozek. Wydział Informatyki
Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia
Planowanie adresacji IP dla przedsibiorstwa.
Planowanie adresacji IP dla przedsibiorstwa. Wstp Przy podejciu do planowania adresacji IP moemy spotka si z 2 głównymi przypadkami: planowanie za pomoc adresów sieci prywatnej przypadek, w którym jeeli
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Zaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Podstawy Programowania.
Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Podstawy systemu kolejkowego SLURM
Podstawy systemu kolejkowego SLURM Uniwersytet Warszawski Matematycznego i Komputerowego http:// Marcin Stolarek m.stolarek@icm.edu.pl Maciej Szpindler m.szpindler@icm.edu.pl Plan szkolenia Organizacja
Mirosław Kupczyk miron@man.poznan.pl. Pozna, PCSS, 17-18.01.2005. Szkolenie: "Architektura i uytkowanie klastra Linux IA-64"
Mirosław Kupczyk miron@man.poznan.pl $ %! " # & ' Wzgldy historyczne Naturalna ewolucja systemów luno ze sob powizanych znajdujcych si w jednej oraganizacji, ch współdzielenia zasobów obliczeniowych, danych,
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Sosnowiec, dn... Imię i nazwisko...
Sosnowiec, dn.... Imię i nazwisko... Test znajomości zaawansowanch technik programowania składa się z 10 ptań. Dla każdego ptania zaproponowano czter odpowiedzi, z którch tlko jedna jest prawidłowa. Na
Pobieranie argumentów wiersza polecenia
Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:
Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 4
Wykład 4 p. 1/14 Obliczenia równoległe w zagadnieniach inżynierskich Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Klastry Wykład
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Klonowanie MAC adresu oraz TTL
1. Co to jest MAC adres? Klonowanie MAC adresu oraz TTL Adres MAC (Media Access Control) to unikalny adres (numer seryjny) kadego urzdzenia sieciowego (jak np. karta sieciowa). Kady MAC adres ma długo
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Kompilacja i uruchamianie zadań na klastrach Perszeron i Mustang.
Kompilacja i uruchamianie zadań na klastrach Perszeron i Mustang. Klaster Perszeron pracuje pod kontrolą systemu SuSE Linux Enterprise Server 10 w wersji 64bitowej i wyposażony jest w zestaw standardowych
Podstawy 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
Instrukcja obsługi programu Pilot PS 5rc
Instrukcja obsługi programu Pilot PS 5rc Spis treci 1.Wprowadzenie....3 2. Wymagania....3 3. Instalacja oprogramowania...3 4. Uruchomienie Programu...5 4.1. Menu główne...5 4.2. Zakładki...6 5. Praca z
Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Wstęp. do języka C na procesor 8051. (kompilator RC51)
Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje
Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
!"" ' #$$$%&' ()*$+&',! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.
!"" "! "#$%&$ ' #$$$%&' ()*$+&',! (" " $! #)' -$$!.$$/)$! 01 021! 3$ Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka o stałej szerokoci pogrubiona