OpenMP: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nur (discussione | contributi) m fix maiuscola |
Nur (discussione | contributi) m →Introduzione: l'header ha l'estensione .h |
||
Riga 9:
==Introduzione==
''OpenMP '' è un'implementazione del concetto di [[Thread (informatica)|multithreading]] ovvero di un metodo di parallelizzazione per cui un ''master thread'' (una serie di istruzioni eseguite consecutivamente) crea un certo numero di ''slave thread''
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 [[
L'ambiente di esecuzione in tempo reale (runtime environment) alloca i thread sui processori a seconda di vari fattori tra cui il carico della macchina. Nel linguaggio [[C (linguaggio)|C]]/[[C++]] le funzioni implementate dallo standard openMP sono incluse in un [[Header file|file header]] chiamato omp.
==Storia==
|