Graafi-symbolinen ohjelmointi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. heinäkuuta 2022 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

Graafisymbolinen ohjelmointitekniikka on ohjelmistoalgoritmien  suunnittelu- ja koodaustekniikka , joka perustuu ohjelmien graafiseen esitykseen ja jonka tarkoituksena on automatisoida kokonaan tai osittain ohjelmistojen suunnittelu-, koodaus- ja testausprosessit .

Graafi -symbolinen ohjelmointitekniikka on graafinen ohjelmointikieli , joka mahdollistaa rinnakkaisten algoritmien kuvaamisen ohjausgraafin avulla ja ohjelmakoodien automaattisen generoinnin.

Mallin käsitteellinen kuvaus

Mallia edustaa nelinkertainen , jossa  on joukko tietyn aihealueen dataa,  on joukko operaattoreita, jotka on määritelty aihealueen datan yli,  on joukko predikaatteja, jotka vaikuttavat aihealueen tietorakenteisiin,  on suunnattu merkitty kaavio.  on graafin kärkipisteiden joukko. Jokainen kärkipiste on merkitty paikallisella operaattorilla . Kaaviossa on joukko ohjauskaaria ja joukko synkronointikaareja .  on kärkijoukkojen ja kaarien välinen relaatio, joka määrittää tavan, jolla ne yhdistetään. Ohjauskaari, joka yhdistää mitkä tahansa kaksi kärkeä ja jolla on kolme otsikkoa: predikaatti , prioriteetti ja kaarityyppi . Jokainen synkronointikaari on merkitty viestillä .

Kaarityyppi määritellään funktioksi, jonka arvoilla on seuraava semantiikka:


Mallin toiminta alkaa alkupisteen merkitsevän operaattorin suorittamisesta . Mallin kuvaaman laskentaprosessin kehittämiseen liittyy siirtymiä kärjestä kärkipisteeseen ohjauskaaria pitkin. Tässä tapauksessa siirtyminen ohjauskaarta pitkin on mahdollista vain, jos predikaatti, jolla se on merkitty, on tosi. Jos useita kärjestä lähteviä kaaria merkitseviä predikaatteja tulee todeksi samaan aikaan, siirtyminen suoritetaan korkeimman prioriteetin kaaria pitkin.

Yhdensuuntaisuuden kuvaamiseksi otetaan käyttöön rinnakkaisen haaran käsite  - graafin osagraafi, joka alkaa yhdensuuntaisella kaarella (tämän kaaren tyyppi on ) ja päättyy päättyvään kaareen (tämän kaaren tyyppi on ). , jossa  on haarapisteiden  joukko, on haaran ohjauskaarien joukko,  on haarapisteiden ja kaarien joukkojen välinen suhde, joka määrittää tavan, jolla ne yhdistetään. Rinnakkaisen haaran kärjestä lähtevät kaaret kuuluvat myös haaraan . Kun koodataan ehdotetulla mallilla kuvattu algoritmi, jokainen rinnakkaishaara generoi erillisen prosessin - joukon alirutiineja, jotka suoritetaan peräkkäin yhdellä rinnakkaislaskentajärjestelmän prosessoreista. Graafinen malli sisältää yleensä useita rinnakkaisia ​​haaroja, joista jokainen muodostaa erillisen prosessin. Tässä mielessä rinnakkaislaskentamalli voidaan esittää useiden rinnakkaisten haarojen liittona. Näin ollen laskelmien rinnastaminen on mahdollista vain graafimallin tasolla. Laskelmat minkä tahansa toimijan sisällä suoritetaan peräkkäin.

Graafikone

Objektien - aggregaattien - GSP-tekniikassa käytetään valvontajärjestelmää laskelmien järjestämiseen. Menetelmä perustuu laskentaprosessin keskitettyyn ohjaukseen, joka suoritetaan erikoisohjelmalla - graafikoneella.
Graafikone on universaali kaikille algoritmeille. Graafikoneen lähtötieto on edellä kuvatun laskennallisen prosessin ohjausgraafin malli. Kun se analysoi mallia, se suorittaa toimijat ja aggregaatit sopivassa järjestyksessä, arvioi predikaattiarvoja ja hallitsee ajoitusta. Jokaiselle rinnakkaishaaralle käynnistetään yksi kopio graafikoneesta, mikä on erillinen prosessi laskentajärjestelmässä.

  1. Graafikoneen työ alkaa toimijan suorittamisesta juurisolmussa.
  2. Sitten muodostetaan luettelo nykyisestä kärjestä tulevista kaarista. Graafikone skannaa tämän luettelon peräkkäin alkaen korkeimman prioriteetin kaaresta. Kaaren merkitsevän predikaatin arvo lasketaan, ja jos se on tosi, käsitellään seuraava kärki. Yhdensuuntaisen kaaren käsittelyn seurauksena erillisessä prosessissa käynnistyy toinen graafikone, joka käsittelee tämän kaaren muodostaman rinnakkaishaaran.
  3. Kaikkien rinnakkaisten haarojen käynnistämisen jälkeen tapahtuu siirtymä kärkeen, jossa ne päätetään.
  4. Pääkuvaajakone odottaa, että kaikki aligraafikoneet suorittavat suorituksen loppuun, ellei vaihtoehtoista ehtoa ole määritetty.

Moduulien välinen liitäntä rinnakkaiseen tiedonsiirtoon

GSP-tietojen tallennus ja käyttöstandardi

GSP-teknologia käyttää standardia moduulien välisen tietorajapinnan järjestämiseen. Standardi varmistetaan toteuttamalla seitsemän perussääntöä:

  1. Otetaan käyttöön yhtenäinen tietovarasto koko ohjelmoinnin aihealueelle (POP), joka koskee koko aluetta. Täydellinen kuvaus tiedoista on saatavilla EPP-tietosanakirjassa. Kaikki muuttujat, joita ei ole kuvattu tietosanakirjassa, katsotaan paikallisiksi tiedoiksi niille GSP-objekteille, joissa niitä käytetään.
  2. GSP:n sisällä tietotyyppien kuvaus on sijoitettu keskitetysti tietotyyppiarkistoon.
  3. Luodulle ohjelmistosovellukselle merkitykselliset tiedot yhdistetään yhdeksi universaaliksi rakenteeksi - TPOData-luokkaan.
  4. Perusmoduuleissa ainoa sallittu tietojen käyttömekanismi on parametrien välittäminen osoitteeseen, joka viittaa yleiseen tietorakenteeseen.
  5. Näiden POP-objektien sitominen perusmoduulien muodollisiin parametreihin on toteutettu POP-objektien passeissa.
  6. GSP-tekniikassa ei ole suositeltavaa käyttää muita menetelmiä ohjelmien välisen tiedonsiirron järjestämiseksi tietojen mukaan.
  7. POP-tiedot voidaan jakaa tai paikallisesti. Muisti jaetulle tiedolle on varattu muistinhallinnassa, ja kaikilla prosessoreilla on pääsy tähän muuttujaan. Muisti paikalliselle muuttujalle on varattu jokaiselle prosessorille, ja vain tämä prosessori voi lukea ja muuttaa sen arvoa.

Kuinka jaettu muisti on toteutettu GSP:ssä

Ohjelman suoritusympäristö valitsee koneen, jolla globaalien POP-muuttujien tallentamisesta vastaava prosessi käynnistetään. Ottaen huomioon CS:n laitteisto-ominaisuudet ja topologia, tämä voi olla solmu, jolla on eniten RAM-muistia, tai keskussolmu, jolla on pienin pääsyaika mistä tahansa klusterin muista solmuista. Tämän lähestymistavan etuna on, että laskentasolmujen muistiresurssi säästyy merkittävästi, koska muistia varataan solmuille vain niille muuttujille, joita käytetään.

Esitetty idea tiedon tallennuksen ja vaihdon järjestämisestä rinnakkaisten prosessien välillä on suunnattu viestinvälitysmalliin, jossa jokainen prosessi toimii paikallisen datan kanssa. Esimerkiksi MPI-standardi edellyttää, että prosessoivat tiedonvaihtoa vain sen seurauksena, että ne lähetetään viestien muodossa.

Kuvattu tiedonvaihtomenetelmä edellyttää tiedonhallinnan käsitteen käyttöönottoa - alirutiinia, joka suorittaa toimialuetietojen tallentamisen, lukemisen ja muokkaamisen.

Muistinhallinta

Tiedonhallinta suoritetaan rinnakkaisohjelman erillisessä prosessissa. Graafimallin rinnakkaisissa haaroissa joidenkin tietojen lukemiseksi tai kirjoittamiseksi käytetään muistinhallintaohjelmaa sanomajoukon avulla. Ensimmäinen viesti lähettää pyynnön lukea tai kirjoittaa tiettyä dataa. Jokainen muuttuja POP:sta saa yksilöllisen numeron, jonka avulla muistinhallinta voi tunnistaa sen. Lukemisen tapauksessa rinnakkaishaara jatkaa odottamaan vastausta tiedonhallinnasta. Kirjoitettaessa toinen viesti lähettää muuttujan uuden arvon. Tiedonhallintajärjestelmä vastaanottaa ja käsittelee pyynnöt rinnakkaishaaroista.

Katso myös