W2 Flashcards
Co to jest OpenMP?
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
Jakie trzy kluczowe aspekty programu równoległego umożliwia OpenMP?
Specyfikację równoległego wykonywania obliczeń, mechanizmy komunikacji pomiędzy poszczególnymi wątkami, synchronizację pracy wątków.
Jakie są główne cechy modelu wykonania programu OpenMP?
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.
Jakie jest ogólne formatowanie dyrektyw OpenMP?
pragma omp dyrektywa klauzula … klauzula instrukcja
Co to jest konstrukcja parallel w OpenMP?
Podstawowa konstrukcja OpenMP oparta na dyrektywie parallel, która tworzy grupę wątków do równoległego wykonania bloku kodu.
Jakie klauzule mogą pojawić się w dyrektywie parallel?
if, num_threads, private, firstprivate, shared, default, copyin, reduction.
Jak ustawić liczbę wątków w grupie w OpenMP?
Za pomocą zmiennej środowiskowej OMP_NUM_THREADS, klauzuli num_threads lub funkcji omp_set_num_threads.
Jakie są domyślne zasady zasięgu zmiennych w OpenMP?
Zmienne automatyczne są prywatne, a inne zmienne są wspólne, chyba że zostaną określone w klauzulach private, firstprivate, shared, default lub reduction.
Jakie są dopuszczalne operatory redukcyjne w OpenMP?
+, -, *, &, |, ^, &&, ||.
Co to jest konstrukcja for w OpenMP?
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.
Jakie klauzule mogą pojawić się w konstrukcji for?
private, firstprivate, reduction, lastprivate, nowait, ordered, schedule.
Co to jest konstrukcja sections w OpenMP?
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.
Co to jest konstrukcja single w OpenMP?
Konstrukcja single powoduje, że tylko jeden wątek wykonuje blok strukturalny.
Co to jest konstrukcja parallel for w OpenMP?
Konstrukcja parallel for łączy dyrektywy parallel i for, umożliwiając równoległe wykonywanie pętli.
Co to jest konstrukcja barrier w OpenMP?
Konstrukcja barrier definiuje jawną barierę, w której wątki czekają, aż wszystkie dotrą do tego samego miejsca.