Dlaczego wiedza na temat architektury sprzętowej, systemu operacyjnego i kompilatora przydaje się w pisaniu wydajnych aplikacji

Wielkość: px
Rozpocząć pokaz od strony:

Download "Dlaczego wiedza na temat architektury sprzętowej, systemu operacyjnego i kompilatora przydaje się w pisaniu wydajnych aplikacji"

Transkrypt

1 Dlaczego wiedza na temat architektury sprzętowej, systemu operacyjnego i kompilatora przydaje się w pisaniu wydajnych aplikacji Adam Strzelecki, 8 kwietnia 2008, Uniwersytet Jagielloński

2 Coś o mnie Prowadzę działalność gospodarczą Od 4 lat współpracuję z francuską firmą Digitech International S.A. oraz Leica Geosystems Geospatial Imaging (wcześniej ER Mapper) Zajmuję się projektowaniem i wdrażaniem systemów GIS Geospatial Imagery Systems Programuję w C/C++ (przetwarzanie, kompresja obrazu) oraz PHP, JavaScript, Java, Ruby (Web, UI) 2

3 Pozyskiwanie obrazu Urządzenia pozyskujące obraz (satelita, samolot (bez)załogowy) Rektyfikacja i orientacja geograficzna Przygotowanie danych do udostępniania Serwery i oprogramowanie kompresujące (ER Mapper Professional, ECW, JPEG 2000) Publikacja w Internecie/Intranecie Serwery WWW, serwisy TCP/IP Serwery WWW wraz z rozszerzeniami streamingu obrazów (IIS + Image Web Server) Dane nieprzetworzone Device raw data Dane skompresowane do formatu ECW lub JPEG 2000 wraz z informacją geolokacyjną (projekcja, system współrzędnych) Dane skompresowane do formatu ECW lub JPEG 2000 wraz z informacją geolokacyjną (projekcja, system współrzędnych) Transfer danych z urządzenia zdalnego (digitalizacja) Serwery/nośniki obrazów źródłowych (taśmy, DVD) Kompresja Serwery i oprogramowanie rektyfikujące mozaiki (ER Mapper Professional, GeoTIFF) Przeglądanie w Internecie/Intranecie Przeglądarki WWW, klienci TCP/IP Aplikacje klienckie: Dane w uniwersalnych formatach: TIFF, BIL + Parametry pozyskania obrazu (pozycja, kąt, wybrane sensory, czas) Rektyfikacja Dane zrektyfikowane w uniwersalnych formatach + Dane rektyfikacji (projekcja, system współrzędnych) Kafelki JPEG DHTML ActiveX Części pliku (chunks) Czym się zajmuje GIS? 3

4 GIS znaczy proszę czekać Rektyfikacja i kompresja zdjęć lotniczych całej Francji o rozdzielczości 0,5 m może trwać nawet miesiąc używając farmy najnowszych komputerów Często błędy w procesie kompresji wykrywane są dopiero w trakcie, a cały proces trzeba uruchamiać od początku Każda zmiana i uaktualnienie wymaga ponownej kompresji całego lub kawałka obrazu i ponownego czekania... 4

5 Wydajność? Przecież już... Zastosowałem algorytmy o najmniejszej złożoności obliczeniowej Używam sprzętu o najwydajniejszej konfiguracji dostępnej na rynku Używam najnowszego kompilatora wydajnego języka programowania Wszystko przecież działa szybko... 5

6 Czas jest na miarę złota! Żeby zaoszczędzić (zyskać dodatkowy) miesiąc w roku pracy wystarczy zwiększyć wydajność o 8,3% Często zyskanie 8,3% dodatkowego czasu może zwiększyć zyski firmy o 50%, jeśli ta ma względnie niską marżę w stosunku do kosztów Co z tego, skoro mamy już najlepsze oprogramowanie i sprzęt? Gdzie szukać wydajności? 6

7 W poszukiwaniu wydajności Poznajmy kompilator naszego ulubionego języka programowania (C/C++ MSVC, GCC) Poznajmy architekturę sprzętu, na którym ma działać nasze oprogramowanie, wykorzystajmy w pełni... Procesor i pamięć cache Pamięć RAM Pamięć masową (dyski twarde) Poznajmy system operacyjny i postarajmy się mu nie przeszkadzać 7

8 Najpierw kompilator Żeby panować nad wydajnością kodu musimy użyć kompilatora który generuje kod maszynowy w sposób przewidywalny, czyli tak jak chcemy (...) Nie można panować nad wydajnością aplikacji pisanych w dynamicznych językach Java, C#, Python czy Ruby (nie ujmując im ich wspaniałych zalet) Najlepiej by było wszystko napisać w assemblerze Jednak... skupimy się na C/C++ i MSVC oraz GCC 8

9 Inni zrobią to lepiej Zanim zaczniemy pisać przydatne funkcje narzędziowe, sprawdźmy czy czasem takie już nie istnieją w systemie, programiści systemowi spędzili wiele lat na szlifowaniu ich wydajności Nawet jeśli takich funkcji nie ma, może są dostępne w sprawdzonych i popularnych bibliotekach 9

10 Inni zrobią to lepiej Pisanie od nowa funkcji bibliotecznych takich jak strlen, strcmp jest dość popularną praktyką, która prowadzi prosto do... kiepskiej wydajności size_t strlen (const char *str) { const char *cstr = str; while(*cstr) cstr++; return cstr - str; } size_t strlen (const char *str) { const unsigned long int *longword_ptr = (unsigned long int *) str; unsigned long int longword, magic_bits = 0x7efefeffL, himagic = 0x L, lomagic = 0x L; GLIBC strlen } for (;;) { longword = *longword_ptr++; if (((longword - lomagic) & himagic)!= 0) { const char *cp = (const char *) (longword_ptr - 1); if (cp[0] == 0) return cp - str; if (cp[1] == 0) return cp - str + 1; if (cp[2] == 0) return cp - str + 2; if (cp[3] == 0) return cp - str + 3; } } 10

11 Kompilator nie jest wszechmogący Choć kompilator stara się jak może, niestety nie jest w stanie zrozumieć ogólnego sensu przetwarzanego kodu, ani zamierzeń programisty Możemy pomóc kompilatorowi generować wydajny kod odpowiednio formułując nasz kod źródłowy Kod, który jest nieczytelny dla człowieka, prawdopodobnie będzie też mało czytelny dla kompilatora, który nie będzie potrafił go zoptymalizować 11

12 Jak pomóc kompilatorowi? Używaj tablica[i] zamiast *(tablica + i) Staraj się nie używać zmiennych typu static w obrębie funkcji, zmienne na stosie mogą być automatycznie zamieniane na zmienne rejestrowe register Oznaczaj wszystkie zmienne tylko do odczytu za pomocą const void moja_funkcja(char *readonly) { char format[] = Lancuch to %s ; (...) } void moja_funkcja(const char *readonly) { const char format[] = Lancuch to %s ; (...) } 12

13 Dobrodziejstwa procesora Najnowsze procesory posiadają zestawy instrukcji przetwarzania wektorowego SSE oraz dodatkowe rejestry, wspierają też architekturę 64-bitową Większość starszych kompilatorów nie korzysta lub korzysta kiepsko z zestawów instrukcji rozszerzonych Wykorzystanie rozszerzonych instrukcji (w postaci wstawek w assemblerze) może w pewnych przypadkach zwiększyć wydajność naszej aplikacji nawet 3-krotnie 13

14 Dobrodziejstwa procesora Najnowsze procesory zawierają coraz więcej rdzeni... hurra!... ale moja aplikacja wcale nie działa szybciej!? Zobacz czy czasem nie da się rozbić programu na wątki (zrównoleglić) Jeśli nawet nie możesz zastąpić swoich algorytmów równoległymi odpowiednikami, może da się przetwarzać kilka kawałków danych jednocześnie Twój nowy kompilator na pewno obsługuje OpenMP 14

15 Dobrodziejstwa procesora Firmy, takie jak Intel czy AMD, oferują biblioteki zawierające zbiory często stosowanych procedur różnych zastosowań począwszy od operacji na macierzach, funkcjach matematycznych i kryptograficznych, kończąc na kompresji JPEG i falkowej Intel Integrated Performance Primitives 5.3 AMD Performance Library (APL) 15

16 Pamięć podręczna i RAM Dostęp do pamięci gra kluczową rolę w wydajności aplikacji Kompilator stara się zoptymalizować dostęp do zmiennych, tzn. przechowywać je w rejestrach, tworzyć pule dla stałych, wyrównywać ich pozycję do rozmiaru słowa Nowsze kompilatory starają się układać zmienne z myślą o pamięci podręcznej - cache 16

17 Dostęp do pamięci Odbywa się przy użyciu słowa procesora, 4 bajty dla architektury 32-bitowej równoważny najczęściej typowi int Dostęp do 2 bajtów short czy 1 bajta char zajmuje procesorowi dokładnie tyle same czasu co dostęp do 4 bajtów Procesor odwołuję się do pamięci RAM poprzez pamięć podręczną ~1-2 MB, podzieloną na linie o rozmiarach 64 lub 32 bajtów 17

18 Pamiętając o liniach cache Staraj się deklarować zmienne używane razem w lokalnym kontekście obok siebie static int i; static char body[1024]; static int j; static double x, y, z, r, w = 0; static int k; for(i = 0; i < x + y; i++) for(j = 0; j < z; j++) for(k = 0; k < j; k++) (...) static int i, j, k; static char body[1024]; static double x, y, z, r, w = 0; for(i = 0; i < x + y; i++) for(j = 0; j < z; j++) for(k = 0; k < j; k++) (...) Staraj się deklarować zmienne od tych o najmniejszym rozmiarze do największych void moja_funkcja() { int i, j, k; double x, y, z, r, w = 0; char body[1024]; (...) } 18

19 Pamiętając o liniach cache Indeksuj tablice w dobrej kolejności void moja_funkcja(int mul) { int i, j; int values[1024][1024]; void moja_funkcja(int mul) { int i, j; int values[1024][1024]; } for(j = 0; j < 1024; j++) for(i = 0; i < 1024; i++) values[i][j] = i * j * mul; (...) } for(i = 0; i < 1024; i++) for(j = 0; j < 1024; j++) values[i][j] = i * j * mul; (...) 19

20 Problemy z pamięcią? Nie nadużywaj malloc i free, które działają dość wolno, najszybszy jest stos, lecz używaj stosu rozsądnie Jeśli jednak musisz alokować często pamięć zastanów się nad pulami pamięci lub alokowaniem bloków o nadmiarowym rozmiarze będących potęgą dwójki Pamiętaj o fragmentacji pamięci wirtualnej! Może się okazać że nie możesz zaalokować 4 MB pamięci nawet jeśli masz wolne 50% ze swoich 2 GB RAM 20

21 Dostęp do dysku W przypadku aplikacji przetwarzających duża ilość danych pamięć masowa stanowi bardzo wąskie gardło Pamięci masowe są często kilka rzędów wolniejsze od pamięci RAM Pamięci masowe prócz szybkości odczytu i zapisu charakteryzują się też dużym czasem dostępu (wyszukiwania) 21

22 Magiczne 4 KB 4 KB to 8 sektorów po 512 bajtów dysku twardego 4 KB to najczęściej rozmiar bloku danych większości nowych systemów plików t.j. ext3 czy NTFS 4 KB to rozmiar strony pamięci w architekturze Intel x86 32-bit i wielu innych 4 KB to rozmiar bloków danych czytanych jednorazowo i cache owanych przez większość systemów operacyjnych 22

23 Pamiętaj o 4 KB Staraj się aby struktura twoich plików pokrywała się z podziałem 4 KB Nagłówek w pierwszych 4 KB Egzemplarze struktur danych po 1, 2, 4... szt. na 4 KB Unikaj zapisywania struktur na granicy 4 KB Pamiętaj, że system cache uje te 4 KB bloki 23

24 Parę innych sztuczek 2 dyski 150 GB będą działały 2 razy szybciej niż 1 dysk 300 GB, a RAID 0 zwiększa wydajność proporcjonalnie do ilości dysków w macierzy Większość dysków dysponuje pokaźnym sprzętowym cache o wielkości 8-16 MB Przy czytaniu danych z sektora, dysk najprawdopodobniej przeczyta i umieści dane z całego cylindra w cache, tak więc dane z innego sektora tego samego cylindra będą dostępne błyskawicznie 24

25 Coś o własnym cache Jeśli naprawdę nie musisz, nie implementuj własnego cache owania danych z dysku twardego Zdaj się na mechanizmy cache owania dostępne w systemie operacyjnym oraz mechanizmy sprzętowe dysku twardego Jeśli tylko to możliwe zamiast read i write używaj mmap Nie zamykaj uchwytów do plików, których będziesz używał ponownie w krótkim czasie 25

26 System plików System plików ma ogromne znaczenie dla wydajności Fragmentacja systemu plików może istotnie popsuć wydajność, więc staraj się zapisywać dane hurtem lub używać pre-alokacji przestrzeni dyskowej Dobrze dobrany system plików może pozytywnie wpłynąć na wydajność, ext3 z dir_index doskonale nadaje się do przechowywania małych plików, natomiast XFS do przechowywania dużych 26

27 Asynchroniczne I/O Nowe systemy operacyjne oferują interfejs asynchronicznego dostępu do pamięci masowych za pomocą kolejek i komunikatów Staraj się korzystać z AIO, w ten sposób CPU może zająć się czymś innym podczas gdy dane ładowane są z dysku Synchroniczne I/O znacząco obciąża procesor i nie pozwala wykonywać wielu długotrwałych operacji na pamięciach masowych jednocześnie 27

28 CPU to nie wszystko! W ciągu kilku lat najprawdopodobniej nastąpi zmiana wiodących paradygmatów programowania na Programowanie współbieżne Programowanie funkcyjne Nowe CPU mają coraz więcej rdzeni, ale już nie wykonują naszych starych programów szybciej Do gry wkracza Graphics Processing Unit... 28

29 GPU Computing... to nowa bardzo obiecująca dziedzina informatyki Współczesne GPU to wydajne super-skalarne procesory wektorowe (architektura Cell) zawierające nawet 128 jednostek obliczeniowych, mogących niezależnie wykonywać kod Intel Core Duo to ~48 GFLOPs, 10 GB/s nvidia G80 to ~330 GFLOPS, 80+ GB/s 29

30 Cuda nvidii! CUDA czyli Compute Unified Device Architecture to zestaw narzędzi pozwalający na wykonywanie skompilowanego uproszczonego kodu języka C na GPU bez większych ograniczeń CUDA pozwala zwykłym aplikacjom uruchamiać część swojego kodu na GPU i korzystać z ogromnej mocy obliczeniowej Wcześniej (od 2003) możliwe to było za pomocą języka Cg shaderów, choć o wiele bardziej skomplikowane 30

31 Cuda nvidii! GPU-Accelerated Dirac Video Codec, czyli implementacja na GPU kodeka Dirac używającego kompresji falkowej video zaprojektowanego przez BBC, zanotowała ~15-krotny wzrost wydajności w stosunku do implementacji na CPU Rosyjska firma Elcomsoft zaprezentowała rozwiązanie używające CUDA do łamania haseł w jeden dzień metodą bruteforce na GeForce 8800, podczas gdy wcześniej zajmowało to przynajmniej 25 dni 31

32 Co przyniesie przyszłość? Języki takie jak Erlang znajdą się wreszcie w centrum zainteresowania Pora odkurzyć książki na temat algorytmów równoległych, z których wiele wreszcie znajdzie swoje zastosowanie CPU może się stać tylko układem zarządzającym, podczas gdy GPU przejmie ciężar obliczeń CPU i GPU ostatecznie się połączą tworząc super-pu 32

33 Literatura Randall Hyde, Write Great Code, Volume 1 & 2, No Starch Press, 2005 Daniel P. Bovet, Marco Cesati, Understanding the Linux Kernel, O Reilly, 2001 Vlad Pirogov, The Assembly Programming Master Book, A-LIST, LLC, 2005 Randima Fernando, Mark J. Kilgard, The Cg Tutorial: The Definitive Guide To Programming Real-Time Graphics, Addision Wesley Professional, 2003 Michael J. Dickheiser, C++ For Game Programmers, Second edition, Charles River Media, 2007 NVIDIA CUDA Compute Unified Device Architecture, Programming Guide 1.1, NVidia Corp.,

34 Dziękuję za uwagę Pytania? 34

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

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

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.

Bardziej szczegółowo

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK 1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Część teoretyczna Informacje i wstępne wymagania Cel przedmiotu i zakres materiału Zasady wydajnego

Bardziej szczegółowo

Systemy plików FAT, FAT32, NTFS

Systemy plików FAT, FAT32, NTFS Systemy plików FAT, FAT32, NTFS SYSTEM PLIKÓW System plików to sposób zapisu informacji na dyskach komputera. System plików jest ogólną strukturą, w której pliki są nazywane, przechowywane i organizowane.

Bardziej szczegółowo

Systemy macierzowe. www. qsantechnology. com

Systemy macierzowe. www. qsantechnology. com Systemy macierzowe www. qsantechnology. com Przegląd produktów Rozwiązania macierzowe QSAN Unified Storage serwer NAS i SAN w jednym Macierze dyskowe typu Unified Storage QSAN pozwalają na wykorzystanie

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

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

Bardziej szczegółowo

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca 2011. Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca 2011. Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16 MMX i SSE Zbigniew Koza Wydział Fizyki i Astronomii Uniwersytet Wrocławski Wrocław, 10 marca 2011 Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16 Spis treści Spis treści 1 Wstęp Zbigniew Koza (WFiA UWr) MMX

Bardziej szczegółowo

Podstawy programowania komputerów

Podstawy programowania komputerów Podstawy programowania komputerów Wykład 10: Sterowanie pamięcią w C Pamięć na stosie!każdy program napisany w języku C ma dostęp do dwóch obszarów pamięci - stosu i sterty, w których może być przechowywana

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor Plan wykładu 1. Pojęcie podsystemu graficznego i karty graficznej 2. Typy kart graficznych 3. Budowa karty graficznej: procesor graficzny (GPU), pamięć podręczna RAM, konwerter cyfrowo-analogowy (DAC),

Bardziej szczegółowo

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK 1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Trendy rozwoju współczesnych procesorów Budowa procesora CPU na przykładzie Intel Kaby Lake

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Praca dyplomowa magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA Dyplomant: Jakub Kołakowski Opiekun pracy: dr inż. Michał Meller Plan prezentacji

Bardziej szczegółowo

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski Agenda GPU Dlaczego warto używać GPU Budowa GPU CUDA JCuda Przykładowa implementacja Co to jest? GPU GPU Graphical GPU Graphical Processing GPU

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017 Wykład nr 7 (11.01.2017) Rok akademicki 2016/2017, Wykład

Bardziej szczegółowo

Wymagania systemowe Dla przedsiębiorstw i średnich firm

Wymagania systemowe Dla przedsiębiorstw i średnich firm Wymagania systemowe Dla przedsiębiorstw i średnich firm Firma Trend Micro Incorporated zastrzega sobie prawo do wprowadzania bez wcześniejszej zapowiedzi zmian w tym dokumencie oraz w opisanych w nim produktach.

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

i3: internet - infrastruktury - innowacje

i3: internet - infrastruktury - innowacje i3: internet - infrastruktury - innowacje Wykorzystanie procesorów graficznych do akceleracji obliczeń w modelu geofizycznym EULAG Roman Wyrzykowski Krzysztof Rojek Łukasz Szustak [roman, krojek, lszustak]@icis.pcz.pl

Bardziej szczegółowo

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

Wysokowydajna implementacja kodów nadmiarowych typu erasure codes z wykorzystaniem architektur wielordzeniowych Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych Ł. Kuczyński, M. Woźniak, R. Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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ę

Bardziej szczegółowo

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania

Bardziej szczegółowo

Moc płynąca z kart graficznych

Moc płynąca z kart graficznych Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe

Bardziej szczegółowo

Technologia informacyjna. Urządzenia techniki komputerowej

Technologia informacyjna. Urządzenia techniki komputerowej Technologia informacyjna Urządzenia techniki komputerowej System komputerowy = hardware (sprzęt) + software (oprogramowanie) Sprzęt komputerowy (ang. hardware) zasoby o specyficznej strukturze i organizacji

Bardziej szczegółowo

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Architektury komputerów Architektury i wydajność. Tomasz Dziubich Architektury komputerów Architektury i wydajność Tomasz Dziubich Przetwarzanie potokowe Przetwarzanie sekwencyjne Przetwarzanie potokowe Architektura superpotokowa W przetwarzaniu potokowym podczas niektórych

Bardziej szczegółowo

Administracja systemem Linux

Administracja systemem Linux Administracja systemem Linux mgr inż. Łukasz Kuczyński lkucz@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Administracja systemem Linux p. 1 Urzadzenia Blokowe Administracja systemem Linux

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie 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ółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

Komputer VIPER i x4,2ghz 8GB GTX 1050TI 4GB 1TB USB 3.0

Komputer VIPER i x4,2ghz 8GB GTX 1050TI 4GB 1TB USB 3.0 Dane aktualne na dzień: 11-01-2018 11:01 Link do produktu: http://exite.info/komputer-viper-i7-7700-4x4-2ghz-8gb-gtx-1050ti-4gb-1tb-usb-30-p-10049.html Komputer VIPER i7-7700 4x4,2ghz 8GB GTX 1050TI 4GB

Bardziej szczegółowo

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki Cel Konfiguracja i testowanie serwera WWW Apache w celu optymalizacji wydajności. 2/25 Zakres Konfigurowanie serwera Apache jako wydajnego

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

Bardziej szczegółowo

Raport Hurtownie Danych

Raport Hurtownie Danych Raport Hurtownie Danych Algorytm Apriori na indeksie bitmapowym oraz OpenCL Mikołaj Dobski, Mateusz Jarus, Piotr Jessa, Jarosław Szymczak Cel projektu: Implementacja algorytmu Apriori oraz jego optymalizacja.

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR

Programowanie mikrokontrolerów AVR Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem

Bardziej szczegółowo

System obliczeniowy laboratorium oraz. mnożenia macierzy

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

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Programowanie aplikacji równoległych i rozproszonych

Programowanie aplikacji równoległych i rozproszonych Programowanie aplikacji równoległych i rozproszonych Dr inż. Krzysztof Rojek krojek@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Strumienie operacji na GPU Domyślne

Bardziej szczegółowo

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie 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ółowo

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych: Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie

Bardziej szczegółowo

Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.

Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków. Macierze RAID Cele RAID RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków. - zwiększenie niezawodności (odporność na awarie), - zwiększenie wydajności transmisji

Bardziej szczegółowo

Bibliografia: pl.wikipedia.org www.intel.com. Historia i rodzaje procesorów w firmy Intel

Bibliografia: pl.wikipedia.org www.intel.com. Historia i rodzaje procesorów w firmy Intel Bibliografia: pl.wikipedia.org www.intel.com Historia i rodzaje procesorów w firmy Intel Specyfikacja Lista mikroprocesorów produkowanych przez firmę Intel 4-bitowe 4004 4040 8-bitowe x86 IA-64 8008 8080

Bardziej szczegółowo

Modernizacja zestawu komputerowego. Marek Pudełko Urządzenia Techniki Komputerowej

Modernizacja zestawu komputerowego. Marek Pudełko Urządzenia Techniki Komputerowej Modernizacja zestawu komputerowego Marek Pudełko Urządzenia Techniki Komputerowej Modernizacja zestawu komputerowego Modernizacji podlegają następujące Pamięć RAM Procesor Karta graficzna Karta sieciowa

Bardziej szczegółowo

Wykład 7. Zarządzanie pamięcią

Wykład 7. Zarządzanie pamięcią Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie

Bardziej szczegółowo

Załącznik nr 6 do SIWZ nr postępowania II.2420.1.2014.005.13.MJ Zaoferowany. sprzęt L P. Parametry techniczne

Załącznik nr 6 do SIWZ nr postępowania II.2420.1.2014.005.13.MJ Zaoferowany. sprzęt L P. Parametry techniczne L P Załącznik nr 6 do SIWZ nr postępowania II.2420.1.2014.005.13.MJ Zaoferowany Parametry techniczne Ilość sprzęt Gwaran Cena Cena Wartość Wartość (model cja jednostk % jednostkow ogółem ogółem i parametry

Bardziej szczegółowo

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775) Nowe mechanizmy w wersji 3 Java Card Mateusz LESZEK (138775) Plan prezentacji 1. Java Card 3 2. Nowe mechanizmy w Java Card 3.X 3. Edycje Java Card 3.X Classic vs Connected Karty inteligentne wprowadzone

Bardziej szczegółowo

Pamięci masowe. ATA (Advanced Technology Attachments)

Pamięci masowe. ATA (Advanced Technology Attachments) Pamięci masowe ATA (Advanced Technology Attachments) interfejs systemowy w komputerach klasy PC i Amiga przeznaczony do komunikacji z dyskami twardymi zaproponowany w 1983 przez firmę Compaq. Używa się

Bardziej szczegółowo

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Problem magazynowania i przetwarzania wielkoformatowych map i planów geologicznych. Promotor: dr inż. Adam Piórkowski Autorzy: Jakub Osiadacz

Bardziej szczegółowo

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Organizacja przedmiotu Dr inż. Robert Banasiak Dr inż. Paweł Kapusta 1 2 Nasze kompetencje R n D Tomografia 3D To nie tylko statyczny obraz!

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

ZAŁĄCZNIK NR 1.8 do PFU Serwery wraz z system do tworzenia kopii zapasowych i archiwizacji danych - wyposażenie serwerowni

ZAŁĄCZNIK NR 1.8 do PFU Serwery wraz z system do tworzenia kopii zapasowych i archiwizacji danych - wyposażenie serwerowni ZAŁĄCZNIK NR 1.8 do PFU Serwery wraz z system do tworzenia kopii zapasowych i archiwizacji danych - wyposażenie serwerowni 1. Serwer główny 1 szt. Komponent Obudowa Płyta główna Wydajność Pamięć RAM Karta

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA Załącznik nr 4 do SIWZ/ załącznik do umowy Przedmiotem zamówienia jest dostawa 2 serwerów, licencji oprogramowania wirtualizacyjnego wraz z konsolą zarządzającą

Bardziej szczegółowo

Test dysku Intel SSD DC S3500 480GB. Wpisany przez Mateusz Ponikowski Wtorek, 22 Październik 2013 16:22

Test dysku Intel SSD DC S3500 480GB. Wpisany przez Mateusz Ponikowski Wtorek, 22 Październik 2013 16:22 W połowie bieżącego roku na rynku pojawiły się profesjonalne nośniki Intel z serii DC S3500. Producent deklaruje, że sprzęt przeznaczony jest do bardziej wymagających zastosowań takich jak centra danych

Bardziej szczegółowo

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

Bardziej szczegółowo

Service Pack 1 z poprawką krytyczną Wymagania systemowe Dla przedsiębiorstw i średnich firm

Service Pack 1 z poprawką krytyczną Wymagania systemowe Dla przedsiębiorstw i średnich firm Service Pack 1 z poprawką krytyczną Wymagania systemowe Dla przedsiębiorstw i średnich firm Firma Trend Micro Incorporated zastrzega sobie prawo do wprowadzania bez wcześniejszej zapowiedzi zmian w tym

Bardziej szczegółowo

Wymagania systemowe. Autodesk AutoCAD 2020 wraz ze specjalistycznymi zestawami narzędzi. Obsługiwane systemy operacyjne. Przeglądarka. Procesor.

Wymagania systemowe. Autodesk AutoCAD 2020 wraz ze specjalistycznymi zestawami narzędzi. Obsługiwane systemy operacyjne. Przeglądarka. Procesor. Autodesk AutoCAD 2020 wraz ze specjalistycznymi zestawami narzędzi Wymagania systemowe Obsługiwane systemy operacyjne Microsoft Windows 7 SP1 z aktualizacją KB4019990 (tylko wersja 64-bitowa) Microsoft

Bardziej szczegółowo

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia Budowa komputera Schemat funkcjonalny i podstawowe parametry Podstawowe pojęcia Pojęcia podstawowe PC personal computer (komputer osobisty) Kompatybilność to cecha systemów komputerowych, która umoŝliwia

Bardziej szczegółowo

Tesla. Architektura Fermi

Tesla. Architektura Fermi Tesla Architektura Fermi Tesla Tesla jest to General Purpose GPU (GPGPU), GPU ogólnego przeznaczenia Obliczenia dotychczas wykonywane na CPU przenoszone są na GPU Możliwości jakie daje GPU dla grafiki

Bardziej szczegółowo

Podstawowe zagadnienia informatyki

Podstawowe zagadnienia informatyki Podstawowe zagadnienia informatyki Artur Opaliński (pokój E112) e-mail: (p. wykład administracyjny) URL: (p. wykład administracyjny) Obsługa pamięci Treść wykładu Adresowanie pamięci Architektury pamięci

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody 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ółowo

Wymagania systemowe. Dla przedsiębiorstw i średnich firm

Wymagania systemowe. Dla przedsiębiorstw i średnich firm Wymagania systemowe Dla przedsiębiorstw i średnich firm Firma Trend Micro Incorporated zastrzega sobie prawo do wprowadzania bez wcześniejszej zapowiedzi zmian w tym dokumencie oraz w opisanych w nim produktach.

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1 Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń

Bardziej szczegółowo

Wymagania systemowe Dla przedsiębiorstw i średnich firm

Wymagania systemowe Dla przedsiębiorstw i średnich firm Wymagania systemowe Dla przedsiębiorstw i średnich firm Firma Trend Micro Incorporated zastrzega sobie prawo do wprowadzania bez wcześniejszej zapowiedzi zmian w tym dokumencie oraz w opisanych w nim produktach.

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Tablice Wskaźniki Adresy pamięci Operator adresu

Bardziej szczegółowo

Kinowa Biblioteka Filmowa KINOSERWER. KinoSerwer

Kinowa Biblioteka Filmowa KINOSERWER. KinoSerwer Kinowa Biblioteka Filmowa KINOSERWER KinoSerwer Zewnętrzna biblioteka filmowa KINOSERWER do przechowywania plików filmowych DCP, o pojemności minimalnej 12TB z możliwością rozbudowy do 42TB. Oferujemy

Bardziej szczegółowo

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 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ółowo

Programowanie Współbieżne

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

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

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

Bardziej szczegółowo

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury 1976 r. Apple PC Personal Computer 1981 r. pierwszy IBM PC Komputer jest wart tyle, ile wart jest człowiek, który go wykorzystuje... Hardware sprzęt Software oprogramowanie Komputer IBM PC niezależnie

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Komputer i urządzenia z nim współpracujące.

Komputer i urządzenia z nim współpracujące. Komputer i urządzenia z nim współpracujące. Program komputerowy Komputer maszynaelektroniczna przeznaczona do przetwarzania informacji Ogólny schemat działania komputera Podstawowe elementy komputera Większość

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY 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ółowo

Sposoby zwiększania efektywności systemu Windows

Sposoby zwiększania efektywności systemu Windows Grzegorz Trześniewski kl 1Tia 26.05.08r. Sposoby zwiększania efektywności systemu Windows Prof. Artur Rudnicki Uruchamiianiie ii zamykaniie Należy monitorować oprogramowanie ładowane podczas uruchamiania

Bardziej szczegółowo

Optymalizacja programów Open Source. Pamięć część 3. Krzysztof Lichota

Optymalizacja programów Open Source. Pamięć część 3. Krzysztof Lichota Optymalizacja programów Open Source Pamięć część 3 Krzysztof Lichota lichota@mimuw.edu.pl Alokacja pamięci Dlaczego alokacja jest ważna dla wydajności Programy w języku wysokiego poziomu wykonują setki

Bardziej szczegółowo

Struktura dysku. Dyski podstawowe i dynamiczne

Struktura dysku. Dyski podstawowe i dynamiczne Struktura dysku Dyski podstawowe i dynamiczne System Windows 2000 oferuje dwa rodzaje konfiguracji dysków: dysk podstawowy i dysk dynamiczny. Dysk podstawowy przypomina struktury dyskowe stosowane w systemie

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie w C. dr inż. Stanisław Wszelak Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++

Bardziej szczegółowo

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja

Bardziej szczegółowo

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Wymagania systemowe Dla przedsiębiorstw i średnich firm

Wymagania systemowe Dla przedsiębiorstw i średnich firm Wymagania systemowe Dla przedsiębiorstw i średnich firm Firma Trend Micro Incorporated zastrzega sobie prawo do wprowadzania bez wcześniejszej zapowiedzi zmian w tym dokumencie oraz w opisanych w nim produktach.

Bardziej szczegółowo

System pamięci. Pamięć wirtualna

System 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ółowo

Programowanie kart graficznych

Programowanie kart graficznych CUDA Compute Unified Device Architecture Programowanie kart graficznych mgr inż. Kamil Szostek AGH, WGGIOŚ, KGIS Wykorzystano materiały z kursu Programowanie kart graficznych prostsze niż myślisz M. Makowski

Bardziej szczegółowo

PROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX

PROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX amigopc.pl 883-364-274 SKLEP@AMIGOPC.PL PROCESOR INTEL CORE I7-4790K QUAD CORE, 4.00GHZ, 8MB, LGA1150, 22NM, 84W, VGA, BOX CENA: 1 473,00 PLN CZAS WYSYŁKI: 24H PRODUCENT: INTEL NUMER KATALOGOWY: BX80646I74790K

Bardziej szczegółowo

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo