Smazaný obsah Přidaný obsah
Bez shrnutí editace
m →‎Programování v OpenMP: barevné zvýraznění syntaxe
Řádek 15:
 
OpenMP se spouští pomocí tzv. direktiv. K vytvoření skupiny vláken použijeme direktivu '''pragma''':
<source lang=c>
#pragma omp parallel {
... // každé vlákno vykonává příkazy tohoto bloku
{
}
... // každé vlákno vykonává příkazy tohoto bloku
}
</source>
 
K rozdělení práce [[cyklus|cyklu]] mezi vlákna použijeme:
<source lang=c>
 
#pragma omp parallel for
for (i=0; i<N; i++) {
... // každé vlákno vykoná část iterací
}
</source>
 
Klauzule modifikují direktivy:
Řádek 32 ⟶ 36:
 
=== Program hello.f90 v jazyce Fortran 90 ===
<source lang=fortran>
 
program hello
use omp_lib
implicit none
integer: nthr, myth
!$omp parallel private(myth)
''' !$omp single'''
'''nthr=omp_get_num_threads()''' //! OpenMP funkce (interface omp_lib, určí počet vláken a jeho index)
''' !$omp end single'''
'''myth=omp_get_thread_num()'''
'''write(6,*) 'Hello from',myth, &''' //! myth je lokální ve vlákně private, nthr je globální v procesu share
'''& 'of',nthr'''
''' !$omp end parallel'''
end program hello
</source>
 
Tučně vyznačený kód provádějí všechna vlákna. Program zkompilujeme a použijeme přitom přepínač ''-openmp'', který aktivuje OpenMP direktivy generující kód vláken: