Graf-symbolsk programmering

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. juli 2022; verifikation kræver 1 redigering .

Graf-symbolsk programmeringsteknologi  er en teknologi til design og kodning af softwarealgoritmer baseret på en grafisk repræsentation af programmer, med det formål helt eller delvist at automatisere processerne for design, kodning og test af software .

Graf -symbolsk programmeringsteknologi er et grafisk programmeringssprog , der gør det muligt at beskrive parallelle algoritmer ved hjælp af en kontrolgraf og generere programkoder automatisk.

Konceptuel beskrivelse af modellen

Modellen er repræsenteret af en firedobbelt , hvor  er et sæt data for et bestemt emneområde,  er et sæt operatører defineret over data for et emneområde,  er et sæt prædikater, der virker på datastrukturer i et emneområde,  er en rettet mærket graf.  er sættet af grafens toppunkter. Hvert vertex er mærket med en lokal operator . Grafen har et sæt kontrolbuer og et sæt synkroniseringsbuer .  er en relation over sæt af hjørner og buer, der bestemmer den måde, de er forbundet på. En kontrolbue, der forbinder to vilkårlige spidser og har tre etiketter: prædikat , prioritet og buetype . Hver synkroniseringsbue er markeret med en meddelelse .

En buetype er defineret som en funktion, hvis værdier har følgende semantik:


Modellens funktion begynder med udførelsen af ​​en operator , der markerer det indledende toppunkt . Udviklingen af ​​beregningsprocessen beskrevet af modellen er forbundet med overgange fra toppunkt til toppunkt langs kontrolbuer. I dette tilfælde er overgangen langs kontrolbuen kun mulig, hvis prædikatet, som det er markeret med, er sandt. Hvis flere prædikater, der markerer buer, der udgår fra et toppunkt, bliver sande på samme tid, udføres overgangen langs den højest prioriterede bue.

For at beskrive parallelitet introduceres begrebet en parallel gren  - en undergraf af en graf , der begynder med en parallel bue (typen af ​​denne bue er ) og slutter med en afsluttende bue (typen af ​​denne bue er ). , hvor  er sættet af grenspidser,  er sættet af grenkontrolbuer,  er forholdet over sættene af grenhjørner og buer, der bestemmer den måde, de er forbundet på. De buer, der udgår fra hjørnerne af den parallelle gren , hører også til grenen . Ved kodning af den beskrevne algoritme ved hjælp af den foreslåede model, genererer hver parallel gren en separat proces - et sæt subrutiner, der udføres sekventielt på en af ​​processorerne i det parallelle computersystem. Den grafiske model indeholder normalt flere parallelle grene, som hver danner en separat proces. I denne forstand kan den parallelle beregningsmodel repræsenteres som en forening af flere parallelle grene. Parallelisering af beregninger er således kun mulig på grafmodelniveau. Beregninger inden for enhver aktør udføres sekventielt.

Graph Machine

I GSP-teknologien til objekter - aggregater - bruges et monitorskema til organisering af beregninger. Metoden er baseret på centraliseret styring af computerprocessen, udført af et særligt program - en grafmaskine.
Grafmaskinen er universel til enhver algoritme. Den indledende information for grafmaskinen er modellen af ​​den beregningsmæssige processtyringsgraf beskrevet ovenfor. Når den analyserer modellen, udfører den aktører og aggregater i den passende rækkefølge, evaluerer prædikatværdier og styrer timing. For hver parallel gren lanceres en kopi af grafmaskinen, som er en separat proces i regnesystemet.

  1. Grafmaskinens arbejde begynder med udførelsen af ​​skuespilleren ved rodknuden.
  2. Derefter bygges en liste over buer, der kommer fra det aktuelle toppunkt. Denne liste scannes af grafmaskinen sekventielt, begyndende med den højeste prioritetsbue. Værdien af ​​prædikatet, der markerer buen, beregnes, og hvis det er sandt, behandles det næste toppunkt. Som et resultat af at behandle en parallel bue i en separat proces, startes en anden grafmaskine, der behandler den parallelle gren genereret af denne bue.
  3. Efter lanceringen af ​​alle parallelle grene sker der en overgang til toppunktet, hvor de afsluttes.
  4. Den overordnede grafmaskine venter på, at alle underordnede grafmaskiner er færdige med udførelse, medmindre en alternativ betingelse er angivet.

Inter-modul interface til parallel dataudveksling

GSP datalagring og brug standard

GSP-teknologien bruger en standard til at organisere en inter-modul informationsgrænseflade. Standarden er sikret ved implementering af syv grundlæggende regler:

  1. Der indføres et enkelt datalager for hele fagområdet programmering (POP), som er relevant for hele området. En fuldstændig beskrivelse af dataene er tilgængelig i EPP Data Dictionary. Eventuelle variabler, der ikke er beskrevet i dataordbogen, betragtes som lokale data for de GSP-objekter, hvor de bruges.
  2. Inden for GSP er beskrivelsen af ​​datatyper placeret centralt i arkivet af datatyper.
  3. De data, der er relevante for den genererede softwareapplikation, kombineres i en enkelt universel struktur - TPOData-klassen.
  4. I basismoduler er den eneste tilladte dataadgangsmekanisme at overføre parametre til en adresse, der refererer til en generisk datastruktur.
  5. Binding af disse POP-objekter til de formelle parametre for basismodulerne er implementeret i POP-objekternes pas.
  6. Inden for GSP-teknologi anbefales det ikke at bruge andre metoder til at organisere kommunikation mellem programmer i henhold til data.
  7. Data i POP kan deles eller lokalt. Hukommelsen til de delte data er allokeret i hukommelseshåndteringen, og alle processorer har adgang til denne variabel. Hukommelse til en lokal variabel er allokeret til hver processor, og kun denne processor kan læse og ændre dens værdi.

Hvordan delt hukommelse implementeres i GSP

Programudførelsesmiljøet vælger den maskine, hvorpå den proces, der er ansvarlig for lagring af de globale POP-variabler, skal startes. I betragtning af CS'ens hardwarefunktioner og topologi kan dette være den node med den største mængde RAM eller den centrale node, som har den minimale adgangstid fra nogen af ​​de andre noder i klyngen. Fordelen ved denne fremgangsmåde er, at hukommelsesressourcen på computerknudepunkter er betydeligt sparet, da hukommelse kun er allokeret til knudepunkter for de variabler, der bruges.

Den præsenterede idé om at organisere datalagring og udveksling mellem parallelle processer er orienteret mod meddelelsesoverførselsmodellen, hvor hver proces arbejder med lokale data. For eksempel indebærer MPI-standarden, at processer kun udveksler data som et resultat af at sende dem i form af meddelelser.

Den beskrevne metode til dataudveksling kræver introduktionen af ​​konceptet med en datamanager - en underrutine, der udfører funktionerne med at lagre, læse og ændre domænedata.

Hukommelseshåndtering

Datamanageren udføres i en separat proces af parallelprogrammet. I parallelle grene af grafmodellen, for at læse eller skrive nogle data, tilgås hukommelseshåndteringen ved hjælp af et sæt meddelelser. Den første besked sender en anmodning om at læse eller skrive en bestemt data. Hver variabel fra POP'en modtager et unikt nummer, som hukommelsesadministratoren kan identificere den med. I tilfælde af en læsning fortsætter den parallelle gren med at vente på et svar fra dataadministratoren. Når du skriver, sender den anden besked den nye værdi af variablen. Datamanageren round-robin modtager og behandler anmodninger fra parallelle filialer.

Se også