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

Idei cool pentru a-ti petrece timp de calitate alaturi de sufletul tau pereche
Idei cool pentru a-ti petrece timp de calitate alaturi de sufletul tau pereche

Cand esti intr-o relatie pe termen lung, petrecerea timpului cu persoana iubita este esentiala. Legatura dintre voi se fortifica, capata din ce in ce mai mult sens. Astfel, va descoperiti calitatile, dar mai ales defectele. Mereu veti afla lucruri noi unul despre celalalt (chiar si dupa ani buni de

Viata de student - Iata TOT ce trebuie sa stii despre dragoste, sex si romantism in facultate!
Viata de student - Iata TOT ce trebuie sa stii despre dragoste, sex si romantism in facultate!

Pe langa cursuri, planuri de cariera si alte provocari academice, viata sociala si cea sentimentala sunt extrem de importante pentru orice student. Acesta este momentul in care iti poti intalni marea dragoste sau, dimpotriva, sa ai parte de multe si dureroase dezamagiri. Cel mai probabil te vei

Cum este cariera de traducator - iata cum se desfasoara lucrurile la INOVA
Cum este cariera de traducator - iata cum se desfasoara lucrurile la INOVA

Odata cu evolutia globalizarii si a schimburilor comerciale intre tari, a relocalizarii companiilor, a dezvoltarii multinationalelor, Romania a devenit o piata de desfacere a produselor europene si noneuropene, o zona atractiva pentru investitorii straini care au gasit aici forta de munca mai

Sfaturi pentru a juca la SuperEnalotto
Sfaturi pentru a juca la SuperEnalotto

Cu siguranță știți câte numere SuperEnalotto trebuie să alegeți pentru a câștiga. Știți, de asemenea, unde și când au loc extragerile SuperEnalotto și care sunt șansele de a câștiga la această loterie. Cu

Top 15 deserturi populare in intreaga lume
Top 15 deserturi populare in intreaga lume

Deserturile difera de la o tara la alta: unele sunt usoare si fructate, iar altele vin cu cele mai neasteptate combinatii de gustrui. Ti-am pregatit aici o lista cu cele mai populare deserturi din intreaga lume: Franta: Crème Brûlée Crème brûlée este un desert

Teste Online

matematica

acesta este un test simplu

mai multe »
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.