Tehnologia de programare grafic-simbolică este o tehnologie de proiectare și codare a algoritmilor software bazați pe o reprezentare grafică a programelor, cu scopul de a automatiza total sau parțial procesele de proiectare, codare și testare a software -ului .
Tehnologia de programare grafică-simbolică este un limbaj de programare grafică care permite descrierea algoritmilor paraleli folosind un grafic de control și generarea automată a codurilor de program.
Modelul este reprezentat printr-un cvadruplu , unde este un set de date dintr-un anumit domeniu, este un set de operatori definiți asupra datelor dintr-un domeniu, este un set de predicate care acționează asupra structurilor de date ale unui domeniu, este un grafic etichetat. este mulțimea vârfurilor graficului. Fiecare vârf este etichetat cu un operator local . Graficul are un set de arce de control și un set de arce de sincronizare . este o relație peste mulțimi de vârfuri și arce care determină modul în care acestea sunt conectate. Un arc de control care conectează oricare două vârfuri și are trei etichete: predicat , prioritate și tip arc . Fiecare arc de sincronizare este marcat cu un mesaj .
Un tip de arc este definit ca o funcție ale cărei valori au următoarea semantică:
Funcționarea modelului începe cu execuția unui operator care marchează vârful inițial . Dezvoltarea procesului de calcul descris de model este asociată cu tranzițiile de la vârf la vârf de-a lungul arcelor de control. În acest caz, tranziția de-a lungul arcului de control este posibilă numai dacă predicatul cu care este marcat este adevărat. Dacă mai multe predicate care marchează arcele care ies dintr-un vârf devin adevărate în același timp, tranziția este efectuată de-a lungul arcului cu cea mai mare prioritate.
Pentru a descrie paralelismul, este introdus conceptul de ramură paralelă — un subgraf al unui grafic care începe cu un arc paralel (tipul acestui arc este ) și se termină cu un arc de sfârșit (tipul acestui arc este ). , unde este mulțimea de vârfuri de ramificație, este mulțimea de arce de control al ramurilor, este relația peste mulțimile de vârfuri de ramificație și arce care determină modul în care sunt conectate. De ramură aparţin şi arcele care emană din vârfurile ramificaţiei paralele . La codificarea algoritmului descris folosind modelul propus, fiecare ramură paralelă generează un proces separat - un set de subrutine executate secvenţial pe unul dintre procesoarele sistemului de calcul paralel. Modelul grafic conține de obicei mai multe ramuri paralele, fiecare dintre acestea formând un proces separat. În acest sens, modelul de calcul paralel poate fi reprezentat ca o unire a mai multor ramuri paralele. Astfel, paralelizarea calculelor este posibilă doar la nivelul modelului grafic. Calculele în cadrul oricărui actor sunt efectuate secvenţial.
În tehnologia GSP pentru obiecte - agregate - este utilizată o schemă de monitorizare pentru organizarea calculelor. Metoda se bazează pe controlul centralizat al procesului de calcul, realizat de un program special - o mașină grafică.
Mașina grafică este universală pentru orice algoritm. Informația inițială pentru mașina-graf este modelul graficului de control al procesului de calcul descris mai sus. Pe măsură ce analizează modelul, execută actorii și agregă în ordinea adecvată, evaluează valorile predicatelor și gestionează sincronizarea. Pentru fiecare ramură paralelă, este lansată o copie a mașinii grafice, care este un proces separat în sistemul de calcul.
Tehnologia GSP folosește un standard pentru organizarea unei interfețe de informații inter-module. Standardul este asigurat prin implementarea a șapte reguli de bază:
Mediul de execuție a programului selectează mașina pe care va fi lansat procesul responsabil cu stocarea variabilelor globale POP. Având în vedere caracteristicile hardware și topologia CS, acesta poate fi nodul cu cea mai mare cantitate de RAM sau nodul central, care are timpul minim de acces de la oricare dintre celelalte noduri din cluster. Avantajul acestei abordări este că resursa de memorie de pe nodurile de calcul este salvată în mod semnificativ, deoarece memoria este alocată pe noduri numai pentru acele variabile care sunt utilizate.
Ideea prezentată de organizare a stocării și schimbului de date între procese paralele este orientată către modelul de transmitere a mesajelor, în care fiecare proces lucrează cu date locale. De exemplu, standardul MPI implică faptul că procesele fac schimb de date numai ca urmare a trimiterii acestora sub formă de mesaje.
Metoda descrisă de schimb de date necesită introducerea conceptului de manager de date - o subrutină care îndeplinește funcțiile de stocare, citire și modificare a datelor de domeniu.
Managerul de date este executat într-un proces separat al programului paralel. În ramuri paralele ale modelului grafic, pentru a citi sau scrie unele date, se accesează managerul de memorie folosind un set de mesaje. Primul mesaj trimite o solicitare de citire sau scriere a unei anumite date. Fiecare variabilă din POP primește un număr unic prin care managerul de memorie o poate identifica. În cazul unei citiri, ramura paralelă continuă să aștepte un răspuns din partea managerului de date. La scriere, al doilea mesaj trimite noua valoare a variabilei. Managerul de date round-robin primește și procesează cererile de la filialele paralele.