OpenMP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LucaBiondi (discussione | contributi)
m integro
LucaBiondi (discussione | contributi)
m Integro
Riga 13:
La sezione di codice che si intende eseguire in parallelo viene marcata attraverso una apposita [[Direttiva (programmazione)|direttiva]] che causa la creazione dei thread prima della esecuzione.
Ogni thread è identificato tramite un id che può essere ottenuto tramite la funzione omp_get_thread_num(). Tale valore è di tipo intero e per il master thread vale 0. Al termine della esecuzione del codice parallelizzato gli slave thread ritornano il controllo al master thread il quale continua l'esecuzione fino al termine del programma.
 
Per default ogni thread esegue la sezione parallelizzata (parallelized section) di codice in modo indipendente. Appositi costrutti per la divisione del lavoro (chiamati ''Work-sharing constructs'') permettono di dividere il task tra i thread disponibili in modo che ciascuno di essi esegua la propria parte di codice. Il [[Parallelismo a livello di thread]] e quello a livello di dati sono ottenuti attraverso l' OpenMP in questo modo.
 
==Note==