← Tornar a l'auditoria
OpenMP
Versió de 2013 a viki.cat
·
Versió actual a ca.wikipedia
·
Historial
3.611caràcters el 2013
1.799caràcters avui
12passatges que ja no hi són
Text que hi era el 18 de juny de 2013 i que avui no es troba
a l'article. S'ha descartat el que només s'ha reescrit amb altres paraules: només hi surt
allò la major part de les frases del qual han desaparegut. Es compara el text llegible,
sense plantilles; les taules i les fitxes en queden fora, i per veure-ho tot pots mirar-lo
en wikitext.
La secció de codi que es vol que s'executi en paral·lel és marcada corresponentment, amb una directiva de preprocessador que farà que els threads es formin abans que la secció sigui executada. Cada thread té un "id" (identificador) associat que pot ser obtingut fent servir una funció (anomenada omp_get_thread_num() a C/C++ i OMP_GET_THREAD_NUM() a Fortran). L'id de thread és un enter, i el thread mestre té una id de "0". Després de l'execució del codi paral·lelitzat, els threads s'"uneixen" de nou al thread mestre, que continua endavant fins al final del programa.
OpenMP (Open Multip-Processing) és una interfície de programació d'aplicacions (API) que suporta programació multiprocés amb memòria compartida multi-plataforma en C/C++ i Fortran a moltes arquitectures, incloent les plataformes Unix i Microsoft Windows. Consisteix en un conjunt de directives de compilador, rutines de biblioteques, i variables d'entorn que afecten al comportament en temps d'execució.
OpenMP és una implementació de multithreading, un mètode de paral·lelització pel qual el "thread" (fil, en anglès) mestre (una sèrie d'instruccions executades consecutivament) es "bifurca" en un nombre determinat de "threads" esclaus i la tasca es divideix entre ells. Els threads llavors s'executen concurrentment, amb l'entorn d'execució ubicant els threads a diferents processadors.
Per defecte, cada thread executa la seció de codi paral·lelitzada independentment. Es poden fer servir "construccions de compartició de treball" per a dividir una tasca entre els threads de forma que cada thread executi la part de codi que té assignada. Fent servir OpenMP d'aquesta forma es pot aconseguir tant el paral·lelisme de tasques com el paral·lelisme de dades.
L'entorn d'execució assigna els threads a processadors depenent de l'ús, la càrrega de la màquina i altres factors. El nombre de threads pot ser assignat per l'entorn d'execució basant-se en variables d'entorn o en codi fent servir funcions. Les funcions OpenMP estan incloses en un fitxer de capçalera amb el nom "omp.h" a C/C++.
Definit conjuntament per un grup dels principals fabricants de maquinari i programari, OpenMP és un model portable i escalable que dóna als programadors una interfície simple i flexible per a desenvolupar aplicacions paral·leles per a plataformes que van des de l'escriptori fins als supercomputadors.
Una aplicació construida amb el model híbrid de programació paral·lela pot executar-se en un raïm d'ordinadors fent servir OpenMP i Message Passing Interface (MPI).
Univ. Erlangen - OpenMP / Java / CUDA (anglès) Implementació a Linux exportant codi per ser executat a GPU amb l'API CUDA de Nvidia.
L'OpenMP Architecture Review Board (ARB) va publicar el seu primer estàndard, OpenMP per a Fortran 1.0, a l'octubre de 1997.
Al maig de 2008, va sortir la versió 3.0. És la versió actual de les especificacions de l'API.
A l'any 2005 va sortir la versió 2.5. És un estàndard combinat de C/C++ i Fotran.
A l'any 2000 va sortir la versió 2.0 de l'estàndard Fortran.