Open Multi-Processing

Publicat: 13 Iun 2011 00:00

1. Introducere

OpenMP (Open Multi-Processing) este o interfata de programare a aplicatiilor (API) care suporta multiprocesarea memoriei partajate pe mai multe platforme in limbajul C, C + +, Fortran si pe mai multe sisteme de operare, inclusiv Unix si platforme Microsoft Windows. Acesta consta intr-un set de directive compilator, si variabile de mediu care influenteaza comportamentul in timpul rularii.


Fiind acceptat de catre un grup mare de furnizori de hardware si software, OpenMP este un model portabil, scalabil, care ofera programatorilor o interfata simpla si flexibila pentru dezvoltarea de aplicatii pentru calcul paralel destinate unei palete largi de platforme: de la desktop la supercomputer.


Primele specificatii ale architecturii OpenMP au fost publicate pentru Fortran in Octombrie 1997. Un an mai tarziu, a fost prezentat un standard pentru C/C++. In anul 2000 a fost dezvoltata versiunea 2.0 pentru Fortran, iar pentru C/C++ in 2002.
Cea mai recenta versiune a API-ului a fost publicata in Mai 2008. Noutatile aduse de aceasta ultima versiune sunt „task”-urile si „task construct”.


2. Descriere
OpenMP este o implementare a multithreading, o metoda de paralelizare unde "firul" principal de executie (o serie de instructiuni executate consecutiv) gestioneaza un anumit numar de "fire" supuse, iar o sarcina este impartita intre ele. Firele sunt apoi executate simultan, iar timpul de executie este impartit diferitelor procesoare.


Sectiunea de cod care este menit sa ruleze in paralel este marcat in consecinta, cu o directiva preprocesata, care va cauza crearea „firelor de executie” inainte de executarea codului. Fiecare fir de executie are un „id” atasat, care poate fi obtinut folosind o functie (numita omp_get_thread_num()). Id-ul este de tip intreg, iar firul principal are id-ul 0. Dupa executia codului paralelizat, firele lansate se altatura din nou celui principal, care continua pana la finalizare programului.


Initial, fiecare fir executa sectiunea de cod paralelizata independent. „Work-sharing constructs” (constructii pentru impartirea sarcinilor) pot fi folosite pentru a divide o sarcina intre mai multe fire, iar acestea sa-si imparta mai departe cate o sectiune de cod. Atat sarcinile paralelizate cat si datele paralelizate pot fi obtinute folosind OpenMP.

Trebuie sa citesti

Despre Sarbatorile legale in 2019

Ca in fiecare an, si in 2019 romanii asteapta cu nerabdare sa afle de ce zile libere vor putea profita pentru o vacanta sau o escapada in afara agitatiei zilnice, weekendul fiind de multe ori mult prea scurt pentru asa ceva. Se pare insa ca acest an va fi mai putin darnic cu cei care lucreaza

Iubesti pisicile? Iata unde-ti poti petrece vacanta pentru a te bucura de compania lor
Iubesti pisicile? Iata unde-ti poti petrece vacanta pentru a te bucura de compania lor

Iti doresti o vacanta atfel? In care sa te relaxezi si sa uiti complet de examenele si lucrarile pe care trebuie sa le predai la termen? Dar vrei sa te bucuri in acelasi timp de compania animalelor tale preferate? Avem solutia perfecta pentru tine: destinatiile de vacanta perfecte pentru iubitorii

Heliport la Marie Curie pentru copiii bolnavi
Heliport la Marie Curie pentru copiii bolnavi

Spitalului Clinic de Urgenta pentru Copii “M. S. Curie” va fi dotat cu heliport pentru a facilita transportul rapid al copiilor care au nevoie de interventie medicala de urgenta. Lucrarile la constructia heliportului, care va fi amplasat pe acoperisul spitalului, vor incepe in toamna

6 lucruri noi de incercat in vacanta
6 lucruri noi de incercat in vacanta

Mai sunt cateva luni pana la mult asteptata vacanta de vara. Chiar si cand stii ca o sesiune lunga si grea te desparte de zilele insorite de relaxare, nu poti sa nu iti faci macar cateva planuri pentru distractie. De la a-ti incerca norocul intr-o sala de jocuri virtuala si pana la a petrece o

Teste Online

TEST DE EVALUARE PENTRU HTML

TEST DE EVALUARE PENTRU HTML, cls IX

mai multe »
Link-uri recomandate: design interior | nikydecor.ro | designer interior cluj | mobilier dormitor preturi | modern interior design
Acest site foloseste Cookie-uri.
Folosim cookie-uri pentru a personaliza continutul si reclamele, pentru a oferi caracteristici specifice retelelor sociale si pentru a analiza traficul nostru. De asemenea, impartasim informatii despre felul in care ne utilizati site-ul, cu partenerii nostri de pe retelele sociale, de publicitate si de statistica in conformitate cu Politica de confidentialitate. Va puteti administra preferintele in Setari cookie.