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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

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

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

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

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

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegół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

Nowoczesne technologie przetwarzania informacji

Nowoczesne technologie przetwarzania informacji Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego

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

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

GIS wysokiej rozdzielczości i monitoring video

GIS wysokiej rozdzielczości i monitoring video GIS wysokiej rozdzielczości i monitoring video Możliwości zastosowania GPU w celu zwiększenia wydajności Adam Strzelecki, doktorant IPPT PAN, FAIS UJ Plan prezentacji Coś o sobie [2] Cykl życia danych

Bardziej szczegółowo

Język ludzki kod maszynowy

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

Bardziej szczegółowo

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego

Bardziej szczegółowo

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań zespół PCSS/MIC: Jacek Kochan, Jerzy Mikołajczak, Marek Zawadzki 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010

Bardziej szczegółowo

Partition Wizard Home Edition Aplikacja przeznaczona do partycjonowania dysków twardych, obsługująca również macierze RAID oraz dyski o pojemności

Partition Wizard Home Edition Aplikacja przeznaczona do partycjonowania dysków twardych, obsługująca również macierze RAID oraz dyski o pojemności 10 najlepszych darmowych programów do partycjonowania i zarządzania dyskami Odpowiedni podział dysku pozytywnie wpływa na działanie systemu. Prezentujemy 10 najlepszych darmowych programów do partycjonowania

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

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Zaawansowane Techniki WWW (HTML, CSS i NODE.JS) Dr inż. Marcin Zieliński Środa 15:30-17:00 sala: A-1-04 WYKŁAD 8 Wykład dla kierunku: Informatyka Stosowana II rok Rok akademicki: 2014/2015 - semestr zimowy

Bardziej szczegółowo

PROE wykład 9 C++11, rzutowanie, optymalizacja. dr inż. Jacek Naruniec

PROE wykład 9 C++11, rzutowanie, optymalizacja. dr inż. Jacek Naruniec PROE wykład 9 C++11, rzutowanie, optymalizacja dr inż. Jacek Naruniec Rzutowanie Różne typy rzutowania są szczególnie istotne przy dziedziczeniu. Załóżmy sobie prostą hierarchię klas: A B C Rzutowanie

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

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa) IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics wersji 20 przy użyciu licencja sieciowa. Ten dokument

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności. Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

Adam Kotynia, Łukasz Kowalczyk

Adam Kotynia, Łukasz Kowalczyk Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Organizacja pamięci w procesorach graficznych

Organizacja pamięci w procesorach graficznych Organizacja pamięci w procesorach graficznych Pamięć w GPU przechowuje dane dla procesora graficznego, służące do wyświetlaniu obrazu na ekran. Pamięć przechowuje m.in. dane wektorów, pikseli, tekstury

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

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

IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa)

IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa) IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics wersji 21 przy użyciu licencja sieciowa. Ten

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

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

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 Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja

Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja 7 Windows Serwer 2003 Instalacja Łódź, styczeń 2012r. SPIS TREŚCI Strona Wstęp... 3 INSTALOWANIE SYSTEMU WINDOWS SERWER 2003 Przygotowanie instalacji serwera..4 1.1. Minimalne wymagania sprzętowe......4

Bardziej szczegółowo

Narzędzia umożliwiające tworzenie scentralizowanej polityki prowadzenia backupów. Adrian Marczyk

Narzędzia umożliwiające tworzenie scentralizowanej polityki prowadzenia backupów. Adrian Marczyk Narzędzia umożliwiające tworzenie scentralizowanej polityki prowadzenia backupów Adrian Marczyk Kopia bezpieczeństwa (ang. Backup copy) w informatyce dane, które mają służyć do odtworzenia oryginalnych

Bardziej szczegółowo

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII

Bardziej szczegółowo

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka CUDA część 1 platforma GPGPU w obliczeniach naukowych Maciej Matyka Bariery sprzętowe (procesory) ok na. 1 10 00 la raz t y Gdzie jesteśmy? a ok. 2 razy n 10 lat (ZK) Rozwój 1985-2004 i dalej? O roku ów

Bardziej szczegółowo

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Mateusz Maślanka. Jak działa LIDAR Server?

Mateusz Maślanka. Jak działa LIDAR Server? Mateusz Maślanka plan prezentacji 1. Co to jest LiDAR server? 2. pierwsze kroki 3. przeglądanie danych 4. przekrój poprzeczny 5. Jak pobierać dane LiDAR? 2 Co to jest LiDAR server? geoportal dla danych

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

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

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 Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

GOZ-353-2210-4/15 Warszawa, dnia 18.06.2015 r. WYKONAWCY

GOZ-353-2210-4/15 Warszawa, dnia 18.06.2015 r. WYKONAWCY GOZ-353-2210-4/15 Warszawa, dnia 18.06.2015 r. WYKONAWCY Dotyczy: postępowania o udzielenie zamówienia publicznego na dostawę macierzy dla jednostek organizacyjnych Państwowej Inspekcji Pracy. Stosownie

Bardziej szczegółowo

Statistics dla systemu Mac OS. Instrukcje dotyczące instalacji (licencja sieciowa)

Statistics dla systemu Mac OS. Instrukcje dotyczące instalacji (licencja sieciowa) PASW Statistics dla systemu Mac OS Instrukcje dotyczące instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania PASW Statistics 18 przy użyciu licencja sieciowa. Ten dokument

Bardziej szczegółowo

Wykład 2. Mikrokontrolery z rdzeniami ARM

Wykład 2. Mikrokontrolery z rdzeniami ARM Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów ARM są szeroko

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Opis przedmiotu zamówienia

Opis przedmiotu zamówienia \ Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Infrastruktura i Środowisko Postępowanie nr: WB.2420.5.2014.NG Załącznik nr 5 do

Bardziej szczegółowo

KURS C/C++ WYKŁAD 6. Wskaźniki

KURS C/C++ WYKŁAD 6. Wskaźniki Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można

Bardziej szczegółowo

OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA 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ą oraz

Bardziej szczegółowo

Zalecenia dotyczące budowania infrastruktury sprzętowej systemu Comarch ERP XL 2016.0. Aktualizacja dokumentu: 2015-09-25

Zalecenia dotyczące budowania infrastruktury sprzętowej systemu Comarch ERP XL 2016.0. Aktualizacja dokumentu: 2015-09-25 Zalecenia dotyczące budowania infrastruktury sprzętowej systemu Comarch ERP XL 2016.0 Aktualizacja dokumentu: 2015-09-25 Copyright 2015 COMARCH Wszelkie prawa zastrzeżone Nieautoryzowane rozpowszechnianie

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

INŻYNIERIA OPROGRAMOWANIA INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia

Bardziej szczegółowo

1 http://www.rtlinux-gpl.org 2 http://crux.nu/ 3 http://www.rtlinux-gpl.org/cgi-bin/viewcvs.cgi/rtlinux-3.2-rc1/ 4

1 http://www.rtlinux-gpl.org 2 http://crux.nu/ 3 http://www.rtlinux-gpl.org/cgi-bin/viewcvs.cgi/rtlinux-3.2-rc1/ 4 Dynamiczna alokacja pamięci dla systemów czasu rzeczywistego. Kamil Deryński 1. WSTĘP Krytycznym elementem podczas projektowania systemów czasu rzeczywistego jest oczywiście czas,

Bardziej szczegółowo

Programowanie Równoległe wykład, 21.01.2013. CUDA, przykłady praktyczne 1. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe wykład, 21.01.2013. CUDA, przykłady praktyczne 1. Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe wykład, 21.01.2013 CUDA, przykłady praktyczne 1 Maciej Matyka Instytut Fizyki Teoretycznej Motywacja l CPU vs GPU (anims) Plan CUDA w praktyce Wykład 1: CUDA w praktyce l aplikacja

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,

Bardziej szczegółowo

IBM SPSS Statistics dla systemu Windows Instrukcje dotyczące instalacji (licencja sieciowa)

IBM SPSS Statistics dla systemu Windows Instrukcje dotyczące instalacji (licencja sieciowa) IBM SPSS Statistics dla systemu Windows Instrukcje dotyczące instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics wersji 19 przy użyciu licencja sieciowa.

Bardziej szczegółowo

Zarządzanie infrastrukturą serwerów Blade

Zarządzanie infrastrukturą serwerów Blade ILOŚĆ SZTUK: 1 Szafa rack PRODUCENTA SPRZĘTU : Typ szafa do montażu urządzeń 19 oferowanych serwerów i macierzy Wysokość 42U Wyposażenie drzwi przednie i tylne zamykane na klucz, oraz ściany boczne. Dystrybucja

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo