OpenMP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LucaBiondi (discussione | contributi)
FrescoBot (discussione | contributi)
m Bot: apostrofo dopo l'articolo indeterminativo e modifiche minori
Riga 3:
''OpenMP'' è gestito dal consorzio [[Organizzazione non a scopo di lucro|no profit]] ''OpenMP Architecture Review Board'' (or OpenMP ARB) assieme ad un gruppo di produttori di Hardware e di sviluppatori di software come [[Advanced Micro Devices|AMD]], [[IBM]], [[Intel]], [[Cray Inc.]], [[Hewlett-Packard]], [[Fujitsu]], [[NVIDIA Corporation]], [[NEC Corporation]], [[Microsoft Corporation]], [[Texas Instruments Incorporated|Texas Instruments]], [[Oracle Corporation|Oracle]] ed altri.
 
''OpenMP'' usa un modello scalabile e portabile che fornisce al [[Programmatore]] un 'interfaccia semplice e flessibile per sviluppare applicazioni di calcolo parallele che possono essere eseguire da uno standard [[Computer desktop]] fino ai [[Supercomputer]]<ref>http://openmp.org/wp/2008/11/openmp-30-status/ OpenMP 3.0 Status</ref>.
 
Un 'applicazione sviluppata con il modello ibrido di [[Calcolo parallelo|programmazione parallela]] può essere eseguito su un [[Computer cluster]] utilizzando OpenMP e [[Message Passing Interface]] (MPI) oppure in modo trasparente utilizzando le estensioni OpenMP per i sistemi con memoria non condivisa.
 
==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'' ed un task (processo) è diviso tra i vari ''slave thread''. I thread vengono eseguiti in modo concorrente mentre il [[Run-time system]] alloca i thread su processori disponibili.
 
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.
Riga 30:
 
Elementi fondamentali di OpenMP sono i costrutti per la creazione dei thread, per la distribuzione dei carichi di laboro (work sharing), il data-environment management, la sincronizzazione dei thread, le routine runtime a livello utente e le variabili d'ambiente.
Nel linguaggio C/C++ viene utilizzata la direttiva #pragmas.
 
 
Riga 50:
</source>
 
Viene usato il flag -fopenmp per compilare utilizzanto il compilatore GCC:
<source lang=bash>
$gcc -fopenmp hello.c -o hello