pp_prednaska_7_omp Flashcards Preview

PARALELPR > pp_prednaska_7_omp > Flashcards

Flashcards in pp_prednaska_7_omp Deck (12):
1

Charakteristika openMP.

OpenMP - Open Multi-processing

Paralelny programatorsky model - explicitny paralelizmus

Tvorba viacvlaknovych aplikacii v systemoch so zdielanou pamatou

2

Ake typy konstrukcii poskytuje OpenMP (3)

Direktivy pre kompilator
Kniznicne funkcie
Premenne prostredia

3

OpenMP zdielanie udajov

Dva zakladne typy zdielania

Zdielane
Iba jedna inštancia
Vlákna môžu čítať a zapisovať súčasne,
Iba ak chránené špeciálnymi OpenMP konštrukciami
Vykonané zmeny sú viditeľné pre všetky ostatné vlákna,
Ale nie nevyhnutne okamžite, konštrukcia „flush“

Sukromne
Každé vlákno má vlastnú kópiu údajov
Iné vlákno nemôže pristupovať k týmto údajom
Zmeny sú viditeľné iba z vlákna vlastniaceho údaje

4

OpenMP direvtivy

Parallel region
Work-sharing
Synchronisation
Data sharing
private
firstprivate
lastprivate
shared
reduction
orpsharing

5

Kniznicne funkcie OpenMP

pocet vlaken
ID vlakna
Dynamicka uprava poctu vlaken
Vnoreny paralelizmus
Casovac
Uzamknutie

6

Premenne prostredia

Pocet vlaken
Typ planovania
Dynamicka uprava poctu vlaken
vnoreny paralelizmus

7

Osirotena direktiva (Orphared directive)

Osirotena direktiva – direktiva mimo zapuzdrenej direktivy, definovana mimo statickeho rozsahu inej direktivy
- Presahuje viacere funkcie aj zdrojove subory
- Dynamicky rozsah
- Staticky rozsah + osirotene direktivy

OpenMP špecifikácia nevyžaduje, aby
direktívy deľby práce alebo synchronizačné
direktívy (omp for, single, critical, barrier) boli
umiestnené v rámci lexikálneho rozsahu
paralelnej oblasti (omp parallel)
! Ak sú mimo paralelnej oblasti, sú „osirotené“
a v sekvenčnej časti programu vykonávané
iba hlavným vláknom (direktíva je
ignorovaná)

8

Direktiva Parallel

Keď vlákno dosiahne direktívu „parallel“
- Vytvorí sa tím vlákien
- Hlavné (master) vlákno je člen tímu a má ID 0
- Tok vykonáva je duplikovaný od tohto okamihu a
všetky vlákna ho vykonávajú
- Na konci platnosti direktívy je bariéra a od
toho okamihu iba hlavné vlákno pokračuje v
činnosti
- Ak vlákno skončí v paralelnej oblasti, skončia
všetky vlákna

9

Direktíva „for“

NO WAIT – nie je synchronizácia na konci
oblasti
! ORDERED – iterácie vykonávané ako v
sériovom programe
! COLLAPSE – počet vnorených cyklov
použitých na vytvorenie jedného „priestoru“
iterácií

10

#pragma omp single

Purpose
The omp single directive identifies a section of code that must be run by a single available thread.

11

Direktíva „flush“

Synchronizačný bod, po ktorom
implementácia poskytne konzistentný pohľad
na premenné

12

Statický (Lexikálny) rozsah:

Zdrojový kód textovo medzi začiatkom a koncom
štruktúrovaného bloku za direktívou
" Nepresahuje viaceré funkcie či zdrojové súbory