Grafikus-szimbolikus programozás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. július 6-án felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

A gráf-szimbolikus programozási  technológia szoftveralgoritmusok tervezésére és kódolására szolgáló technológia, amely a programok grafikus ábrázolásán alapul, azzal a céllal, hogy teljesen vagy részben automatizálja a szoftverek tervezési, kódolási és tesztelési folyamatait .

A Graph -szimbolikus programozási technológia egy grafikus programozási nyelv, amely lehetővé teszi párhuzamos algoritmusok leírását vezérlőgráf segítségével és programkódok automatikus generálását.

A modell fogalmi leírása

A modellt egy négyes képviseli , ahol  egy adott témakör  adathalmaza, egy tárgyterület adatai felett meghatározott operátorok halmaza, egy tárgyterület  adatstruktúráira ható predikátumok halmaza,  egy irányított feliratú grafikon.  a gráf csúcsainak halmaza. Minden csúcs egy helyi operátorral van felcímkézve . A grafikon egy sor vezérlőívet és egy szinkronizációs ívet tartalmaz .  egy reláció csúcsok és ívek halmazain, amely meghatározza azok összekapcsolásának módját. Egy tetszőleges két csúcsot összekötő vezérlőív három címkével rendelkezik: predikátum , prioritás és ívtípus . Minden szinkronizálási ív egy üzenettel van megjelölve .

Az ívtípust olyan függvényként határozzuk meg, amelynek értékei a következő szemantikával rendelkeznek:


A modell működése a kezdeti csúcsot jelölő operátor végrehajtásával kezdődik . A modell által leírt számítási folyamat fejlődése a vezérlőívek mentén csúcspontból csúcsba való átmenetekhez kapcsolódik. Ebben az esetben az átmenet a vezérlőív mentén csak akkor lehetséges, ha igaz az a predikátum, amellyel meg van jelölve. Ha egy csúcsból kimenő íveket jelölő több predikátum egyidejűleg igazzá válik, akkor az átmenet a legmagasabb prioritású ív mentén történik.

A párhuzamosság leírására bevezetjük a párhuzamos ág fogalmát  – egy gráf részgráfját, amely párhuzamos ívvel kezdődik (ennek az ívnek a típusa ) és egy lezáró ívvel végződik (ennek az ívnek a típusa ). , ahol  az ágcsúcsok  halmaza, az elágazásvezérlő ívek  halmaza, az elágazási csúcsok és ívek halmazai közötti reláció, amely meghatározza azok összekapcsolásának módját. A párhuzamos ág csúcsaiból kiinduló ívek is az ághoz tartoznak . A javasolt modell segítségével leírt algoritmus kódolásakor minden párhuzamos ág külön folyamatot generál - szubrutinok sorozatát, amelyeket szekvenciálisan hajtanak végre a párhuzamos számítási rendszer egyik processzorán. A grafikus modell általában több párhuzamos ágat tartalmaz, amelyek mindegyike külön folyamatot alkot. Ebben az értelemben a párhuzamos számítási modell több párhuzamos ág uniójaként is ábrázolható. Így a számítások párhuzamosítása csak a gráfmodell szintjén lehetséges. A számításokat bármely szereplőn belül egymás után hajtják végre.

Graph Machine

Az objektumok - aggregátumok - GSP technológiájában a számítások szervezésére szolgáló monitorsémát használnak. A módszer a számítási folyamat központi vezérlésén alapul, amelyet egy speciális program - egy gráfgép - hajt végre.
A gráfgép univerzális minden algoritmushoz. A gráfgép kezdeti információja a fent leírt számítási folyamatvezérlő gráf modellje. A modell elemzése során a megfelelő sorrendben végrehajtja a szereplőket és aggregátumokat, kiértékeli a predikátumértékeket és kezeli az időzítést. Minden párhuzamos ághoz a gráfgép egy példánya indul el, ami külön folyamat a számítási rendszerben.

  1. A gráfgép munkája a gyökércsomópontban lévő szereplő végrehajtásával kezdődik.
  2. Ezután létrejön az aktuális csúcsból érkező ívek listája. Ezt a listát a grafikongép szekvenciálisan pásztázza, a legmagasabb prioritású ívtől kezdve. A program kiszámítja az ívet jelölő predikátum értékét, és ha igaz, akkor a következő csúcsot dolgozza fel. Egy párhuzamos ív külön folyamatban történő feldolgozása eredményeként egy másik gráfgép indul el, amely az ezen ív által generált párhuzamos ágat dolgozza fel.
  3. Az összes párhuzamos ág elindítása után átmenet történik a csúcsba, ahol azok véget érnek.
  4. A szülő gráfgép megvárja, hogy az összes gyermek gráfgép befejezze a végrehajtást, hacsak nincs megadva más feltétel.

Modulok közötti interfész párhuzamos adatcseréhez

GSP adattárolás és használat szabvány

A GSP technológia szabványt használ a modulok közötti információs interfész megszervezésére. A szabványt hét alapszabály megvalósítása biztosítja:

  1. Egyetlen adattárat vezetnek be a teljes programozási témakörre (POP), amely a teljes területre vonatkozik. Az adatok teljes leírása az EPP Adatszótárban érhető el. Az adatszótárban le nem írt változók helyi adatnak minősülnek azon GSP-objektumoknál, ahol használatosak.
  2. A GSP-n belül az adattípusok leírása központilag, az adattípusok archívumában kerül elhelyezésre.
  3. A generált szoftveralkalmazás szempontjából releváns adatok egyetlen univerzális struktúrába - a TPOData osztályba - egyesülnek.
  4. Az alapmodulokban az egyetlen engedélyezett adathozzáférési mechanizmus a paraméterek átadása egy általános adatszerkezetre hivatkozó címnek.
  5. Ezeknek a POP objektumoknak az alapmodulok formális paramétereihez való kötése a POP objektumok passportjában valósul meg.
  6. A GSP technológiában nem javasolt más módszerek alkalmazása a programközi kommunikáció adat szerinti szervezésére.
  7. A POP-ban lévő adatok megoszthatók vagy helyiek lehetnek. A megosztott adatok memóriája a memóriakezelőben van lefoglalva, és minden processzor hozzáfér ehhez a változóhoz. A helyi változó memóriája minden processzoron le van foglalva, és csak az a processzor tudja olvasni és módosítani az értékét.

A megosztott memória megvalósítása a GSP-ben

A programvégrehajtási környezet kiválasztja azt a gépet, amelyen a globális POP-változók tárolásáért felelős folyamat elindul. Tekintettel a CS hardveres jellemzőire és topológiájára, ez lehet a legnagyobb RAM-mal rendelkező csomópont vagy a központi csomópont, amely a fürt többi csomópontjától a minimális hozzáférési idővel rendelkezik. Ennek a megközelítésnek az az előnye, hogy a számítási csomópontokon lévő memóriaerőforrás jelentősen megtakarítható, mivel a memória csak a használt változók számára van lefoglalva a csomópontokon.

Az adattárolás és a párhuzamos folyamatok közötti csere megszervezésének bemutatott ötlete az üzenettovábbítási modellre irányul, amelyben minden folyamat helyi adatokkal dolgozik. Például az MPI szabvány azt jelenti, hogy az adatcserét csak az üzenet formájában történő elküldés eredményeként dolgozza fel.

Az adatcsere ismertetett módja megköveteli az adatkezelő fogalmának bevezetését - egy olyan szubrutint, amely a tartományi adatok tárolásának, olvasásának és módosításának funkcióit látja el.

Memóriakezelő

Az adatkezelő a párhuzamos program külön folyamatában valósul meg. A gráfmodell párhuzamos ágaiban bizonyos adatok olvasásához vagy írásához a memóriakezelőt üzenetkészlettel lehet elérni. Az első üzenet egy adott adat olvasására vagy írására vonatkozó kérést küld. A POP-ból minden változó egyedi számot kap, amely alapján a memóriakezelő azonosítani tudja. Olvasás esetén a párhuzamos elágazás az adatkezelő válaszára vár. Íráskor a második üzenet elküldi a változó új értékét. Az adatkezelő körkérdésben fogadja és feldolgozza a párhuzamos ágaktól érkező kéréseket.

Lásd még