W2 Flashcards

1
Q

Co to jest OpenMP?

A

OpenMP (ang. Open Multi-Processing) – wieloplatformowy interfejs programowania aplikacji (API) umożliwiający tworzenie programów komputerowych dla systemów wieloprocesorowych z pamięcią dzieloną. Może być wykorzystywany w językach programowania C, C++ i Fortran na wielu architekturach, m.in. Unix i Microsoft Windows. Składa się ze zbioru dyrektyw kompilatora, bibliotek oraz zmiennych środowiskowych mających wpływ na sposób wykonywania się programu

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

Jakie trzy kluczowe aspekty programu równoległego umożliwia OpenMP?

A

Specyfikację równoległego wykonywania obliczeń, mechanizmy komunikacji pomiędzy poszczególnymi wątkami, synchronizację pracy wątków.

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

Jakie są główne cechy modelu wykonania programu OpenMP?

A

Program rozpoczyna się realizacją instrukcji pojedynczego wątku głównego. Tworzenie grupy wątków następuje w regionie równoległym. Wątki wracają do pracy sekwencyjnej po zakończeniu regionu równoległego.

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

Jakie jest ogólne formatowanie dyrektyw OpenMP?

A

pragma omp dyrektywa klauzula … klauzula instrukcja

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

Co to jest konstrukcja parallel w OpenMP?

A

Podstawowa konstrukcja OpenMP oparta na dyrektywie parallel, która tworzy grupę wątków do równoległego wykonania bloku kodu.

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

Jakie klauzule mogą pojawić się w dyrektywie parallel?

A

if, num_threads, private, firstprivate, shared, default, copyin, reduction.

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

Jak ustawić liczbę wątków w grupie w OpenMP?

A

Za pomocą zmiennej środowiskowej OMP_NUM_THREADS, klauzuli num_threads lub funkcji omp_set_num_threads.

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

Jakie są domyślne zasady zasięgu zmiennych w OpenMP?

A

Zmienne automatyczne są prywatne, a inne zmienne są wspólne, chyba że zostaną określone w klauzulach private, firstprivate, shared, default lub reduction.

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

Jakie są dopuszczalne operatory redukcyjne w OpenMP?

A

+, -, *, &, |, ^, &&, ||.

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

Co to jest konstrukcja for w OpenMP?

A

Konstrukcja for umożliwia dzielenie wykonań pętli między wątki w grupie, przy czym każdy obrót pętli jest wykonywany tylko raz.

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

Jakie klauzule mogą pojawić się w konstrukcji for?

A

private, firstprivate, reduction, lastprivate, nowait, ordered, schedule.

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

Co to jest konstrukcja sections w OpenMP?

A

Konstrukcja sections służy do dzielenia pracy, której nie da się opisać w postaci pętli for, przydzielając bloki kodu różnym wątkom.

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

Co to jest konstrukcja single w OpenMP?

A

Konstrukcja single powoduje, że tylko jeden wątek wykonuje blok strukturalny.

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

Co to jest konstrukcja parallel for w OpenMP?

A

Konstrukcja parallel for łączy dyrektywy parallel i for, umożliwiając równoległe wykonywanie pętli.

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

Co to jest konstrukcja barrier w OpenMP?

A

Konstrukcja barrier definiuje jawną barierę, w której wątki czekają, aż wszystkie dotrą do tego samego miejsca.

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

Co to jest konstrukcja master w OpenMP?

A

Konstrukcja master oznacza, że blok jest wykonywany tylko przez wątek główny.

17
Q

Co to jest konstrukcja critical w OpenMP?

A

Konstrukcja critical oznacza, że blok kodu jest wykonywany przez wątki w trybie wzajemnego wykluczania.