W1 Flashcards

1
Q

Jakie są przykłady problemów obliczeniowych dużej skali?

A

Programowanie zjawisk meteorologicznych i geologicznych, modelowanie i symulacja komputerowa, chemia kwantowa, biologia obliczeniowa, astronomia i astrofizyka, kryptografia, poszukiwanie cywilizacji pozaziemskich (projekt SETI), testowanie broni nuklearnej (program ASCI), geoinformatyka i przetwarzanie danych przestrzennych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Czym różni się programowanie równoległe od programowania współbieżnego?

A

Programowanie współbieżne polega na rozwiązywaniu rzeczywistych problemów w sposób współbieżny, w celu lepszego odzwierciedlenia modelowania pracy systemów. Programowanie równoległe dotyczy programowania architektur wieloprocesorowych, gdzie elementów liczących jest więcej niż jeden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jakie są przykłady historycznych modeli obliczeniowych?

A

Mechanizm z Antykithiry (150-100 p.n.e.), Kostki Napiera (1617), Pascalina (1652), Maszyna Analityczna Babbage’a, Colossus Mark II (1941), ENIAC, IBM 360, ZX Spectrum, IBM PC.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dlaczego obliczenia równoległe są ważne?

A

Osiągnięcie znacznie większej mocy obliczeniowej było możliwe dzięki wykorzystaniu obliczeń równoległych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym była Maszyna Babbage’a?

A

Był to pierwszy projekt maszyn obliczeniowej (obliczenia równoległe).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jakie są kluczowe etapy rozwoju obliczeń współbieżnych?

A

Lata ‘70 - różne komputery kategorii SIMD, lata ‘80 - superkomputery MIMD z procesorami wektorowymi, lata ‘90 - klastry z węzłami SMP, architektura NUMA, początek XXI - wzrost wydajności typowych procesorów, technologia HT, wczoraj - procesory multicore, obliczenia na kartach graficznych CUDA, dziś - systemy hybrydowe, procesory multicore + urządzenia manycore, jutro - powszechność klastrów z węzłami hybrydowymi, akceleratory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jakie problemy wynikają ze wzrostu wartości taktowania procesora?

A

Problemy z wydzielaniem ciepła i problemy z poborem energii.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Czym charakteryzują się procesory kart graficznych?

A

Procesory kart graficznych nie zastępują standardowych procesorów, są one bardzo wydajne przy powtarzających się prostych obliczeniach na wielu danych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jakie oprogramowanie jest używane do programowania równoległego?

A

Linux CentOS, Intel Cluster Studio, Intel SDK for OpenCL, PGI Server, NVIDIA CUDA SDK 5.5, netlib, inne pakiety jak LAMMPS, GDAL, Siesta, własne oprogramowanie tworzone w ramach realizowanych projektów badawczych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Dlaczego programowanie architektur wieloprocesorowych jest trudne?

A

Ze względu na złożoność i odmienność algorytmów oraz brak uniwersalnych języków programowania pozwalających rozwiązywać dowolny problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jakie są kroki do wykorzystania wielu procesorów lub rdzeni?

A

Zdefiniuj części programu, które będą wykonywane równolegle, wybierz strategię dekompozycji, wybierz model programowania, napisz program równoległy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czym jest model programowania SIMT dla CUDA?

A

SIMT dla CUDA zakłada: program wykonywany na urządzeniu (zwykle karta graficzna) składa się z wielu wątków grupowanych w bloki, uruchomienie programu następuje z poziomu komputera (hosta), podstawowy kod wątku (kernel) jest funkcją w języku C, wątki w ramach bloku mogą synchronizować swoje działanie i komunikować się poprzez wspólną pamięć, bloki wątków mogą być wykonywane w dowolnym porządku i tworzą sieć (grid).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jakie są kluczowe zasady efektywnego wykorzystania CPU oraz GPU?

A

Zadania duże i dające się dobrze zrównoleglić są wykonywane na GPU, zaś zadania mniejsze lepiej wykonywać na CPU, efektywne wykorzystanie GPU wymaga specyficznych technik optymalizacyjnych, stosowanie dostępnych bibliotek ułatwia tworzenie aplikacji wykorzystujących GPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jakie są poziomy optymalizacji kompilatorów?

A

Optymalizacja maszynowa, lokalna optymalizacja skalarna, globalna optymalizacja skalarna, optymalizacja wektorowa, optymalizacja równoległa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Czym są SMT i HT w kontekście wielowątkowej współbieżności?

A

SMT (Simultaneous Multi-Threading) oraz HT (Hyper-Threading) to technologie, gdzie fizyczny procesor jest widziany przez system operacyjny jako zbiór logicznych procesorów, które są przydzielane procesom lub wątkom. Procesory logiczne dzielą zasoby sprzętowe procesora fizycznego.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jakie są rodzaje komputerów równoległych MIMD?

A

Komputery z pamięcią rozproszoną, komputery z pamięcią współdzieloną, komputery z pamięcią wirtualnie współdzieloną.

17
Q

Jakie są różnice między pamięcią współdzieloną a rozproszoną?

A

Pamięć współdzielona: łatwe zrównoleglanie fragmentów kodu, niewielka skalowalność, łatwa implementacja prostych algorytmów, niewielki ‘narzut’, czytelny kod, wymaga specjalnego kompilatora, łatwe debugowanie. Pamięć rozproszona: trudne zrównoleglanie fragmentów kodu, duża skalowalność, konieczność tworzenia specjalnych algorytmów, spory ‘narzut’, kod mało czytelny, wymaga biblioteki i runtime’u, trudne debugowanie.