NL1015579C1 - Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors. - Google Patents

Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors. Download PDF

Info

Publication number
NL1015579C1
NL1015579C1 NL1015579A NL1015579A NL1015579C1 NL 1015579 C1 NL1015579 C1 NL 1015579C1 NL 1015579 A NL1015579 A NL 1015579A NL 1015579 A NL1015579 A NL 1015579A NL 1015579 C1 NL1015579 C1 NL 1015579C1
Authority
NL
Netherlands
Prior art keywords
tasks
program
processors
elementary
program tasks
Prior art date
Application number
NL1015579A
Other languages
English (en)
Inventor
Engbert Willem Beltman
Original Assignee
Thales Nederland Bv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to NL1015579A priority Critical patent/NL1015579C1/nl
Application filed by Thales Nederland Bv filed Critical Thales Nederland Bv
Priority to AU2001270665A priority patent/AU2001270665A1/en
Priority to PCT/FR2001/002019 priority patent/WO2002001346A2/fr
Priority to EP01984068A priority patent/EP1323029A2/fr
Priority to US10/312,178 priority patent/US20040163075A1/en
Priority to IL15364001A priority patent/IL153640A0/xx
Priority to CA002414523A priority patent/CA2414523A1/fr
Priority to JP2002506415A priority patent/JP2004509386A/ja
Priority to KR1020027017987A priority patent/KR20030034115A/ko
Application granted granted Critical
Publication of NL1015579C1 publication Critical patent/NL1015579C1/nl
Priority to ZA200300008A priority patent/ZA200300008B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Description

Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors
De onderhavige uitvinding heeft betrekking op een werkwijze 5 voor het automatisch verdelen van programmataken over een verzameling processors. Ze wordt meer in het bijzonder toegepast in systemen, zoals bijvoorbeeld radarsystemen, waarbij een grote hoeveelheid programmatuur vereist is.
10 Vooral in radarsystemen neemt de gebruikte hoeveelheid programmatuur snel toe. Het aantal gebruikte processors neemt eveneens toe. Het betreft dan bijvoorbeeld signaalprocessors. Voor een bepaalde toepassing kunnen tot tientallen processors nodig zijn. Het verdelen van de 15 programmataken over de beschikbare processors kost steeds meer tijd en wordt steeds moeilijker. Bovendien blijkt dat als er later programmataken worden toegevoegd, wat vaak het geval is, dat het dan onmogelijk is om de programmatuur in de verzameling van processoren in te passen zonder grote 20 wijzigingen in de architectuur van de programmatuur of in de hardware.
Het is dan ook duidelijk dat het verdelen van programmataken over de verzameling processors in dergelijke systemen 25 een cruciaal probleem is. Het is zeker een probleem dat tijd kost en het is een complex probleem om de programmataken op hun plaats te krijgen, maar het is ook een flexibiliteitsprobleem. Feitelijk wil men nieuwe programmataken eenvoudig kunnen integreren. Bij het realiseren van 30 systemen werken deze problemen kostenverhogend. Bovendien beïnvloeden ze de onderhoudbaarheid, de testbaarheid en de betrouwbaarheid van de systemen.
De uitvinding heeft onder andere als doel de verdeling van 35 programmataken over de processoren automatisch en optimaal 1015579 2 te doen plaatsvinden, dus eenvoudig en voordelig. De uitvinding stelt zich daarom ten doel een werkwijze te realiseren voor het onderbrengen van programmeertaken in een verzameling processors, die tenminste de volgende 5 stappen omvat: een fase waarin programmataken worden ontleed in elementaire programmataken en waarin datasets worden gecreëerd waarin de verbindingen tussen de elementaire programmataken en de verbindingen tussen de processors 10 worden gedefinieerd; een fase waarin de elementaire programmataken in de processors worden ondergebracht als funktie van vooraf bepaalde datasets; een fase waarin evaluatieparameters voor de zo 15 ondergebrachte elementaire programmataken worden bepaald op basis van een vooraf vastgestelde lijst, waarbij strafpunten worden toegekend als de elementaire programmataken zodanig zijn ondergebracht dat een parameter niet voldoet aan een gegeven criterium; 20 een fase waarin de kosten wordt berekend voor de zo ondergebrachte elementaire programmataken, waartoe de som van alle strafpunten wordt bepaald en waarbij afhankelijk van de kosten een wijze van onderbrengen al dan niet wordt behouden.
25
De zo verkregen wijze van onderbrengen kost bij voorkeur zo weinig mogelijk. De fasen van het verdelen van de taken, het controleren van de evaluatieparameters en het berekenen van de kosten worden herhaald, waarbij een wijze van 30 onderbrengen alleen dan wordt behouden als de verandering in de kosten binnen bepaalde drempelwaarden convergeert, bijvoorbeeld in de orde van 2%-3%. De evaluatieparameters hangen onder andere af van de gegevensstroom, de belading van de processors en van de timing van de elementaire 35 programmataken.
101F579 3
Het voornaamste voordeel van de uitvinding is dat ze het verdelen van de taken binnen een systeem flexibeler laat verlopen, dat de betrouwbaarheid van het systeem wordt vergroot, dat het systeem eenvoudiger te onderhouden is en 5 dat de taken eenvoudig kunnen worden gesplitst in subtaken die door subgroepen kunnen worden uitgevoerd.
Verdere voordelen en karakteristieken van de uitvinding zullen worden uiteengezet aan de hand van de volgende 10 beschrijving bij de figuren, waarbij:
Fig. 1 een mogelijke realisatie van een wijze van onderbrengen van programmataken op een verzameling processors weergeeft;
Fig. 2 een programma architectuur voor de voorgaande wijze 15 van onderbrengen weergeeft;
Fig, 3 op schematische wijze een programma architectuur weergeeft zoals die wordt verkregen door toepassing van de uitvinding;
Fig. 4 een voorbeeld van parameter controlemiddelen 20 weergeeft, als funktie van de gegevensstroom tussen de processors;
Fig. 5 een voorbeeld van een wijze van onderbrengen van programmataken weergeeft, verkregen door toepassing van de uitvinding.
25
Fig. 1 geeft een mogelijke realisatie weer van een wijze van onderbrengen van N elementaire programmataken SW’1,.. ,SW’k,.. ,SW’N op een verzameling van processors HW1, HW2, HW3, HW4. Als voorbeeld is hier het aantal processors 30 vier gekozen. Bepaalde toepassingen kunnen overigens meerdere tientallen processors vergen. De elementaire programmataken vormen een verdeling van een compleet programma, bijvoorbeeld een programma voor het verwerken of simuleren van radarsignalen. Het programma start bij een 35 begintaak 1 en eindigt bij een eindtaak 2. Het totale
1015579 I
4 programma kan bijvoorbeeld enkele honderden elementaire programmataken omvatten, wat overeenkomt met tienduizenden programmaregels. Een processor voert een elementaire programmataak SW’k in één keer uit. De verbindingen 3 in 5 Fig. 1 verbinden de elementaire programmataken met elkaar en illustreren het verloop en de verbindingen van de taken. Een verbinding 3 die twee elementaire programmataken verbindt geeft aan dat een taak wordt uitgevoerd als de voorgaande gereed is.
10
De processors HW1, HW2, HW3,. HW4 bevatten onder andere, naast de feitelijke verwerkingscircuits, de programma-geheugens en de interface circuits voor andere hardware componenten. Eén processor kan bijvoorbeeld een kaart 15 beslaan.
Fig. 1 illustreert bovendien de gegevensstroom tussen begintaak 1 en eindtaak 2 en toont aan dat de wijze van onderbrengen van elementaire programmataken niet optimaal 20 is. Een eerste bezwaar is dat de wijze van onderbrengen van taken SW’k niet compatibel is met hun onderlinge verbindingen. Stel bijvoorbeeld dat twee taken aan verschillende zijden van het totale samenstel van taken zijn gepositioneerd en dat de taken door dezelfde processor 25 worden uitgevoerd. Er van uitgaande dat een processor maar één taak tegelijk kan uitvoeren, kan de totale verwerkingstijd van een taak vanaf de begintaak 1 tot de eindtaak 2 dan niet optimaal zijn. Het heen-en-weer lopen van een processor naar de andere bij het uitvoeren van 30 taken verlengt immers de processing tijd. Een verder nadeel is dat het systeem weinig of zelfs helemaal niet flexibel is. Een wijziging in het algoritme kan een nieuwe en volledig andere wijze van onderbrengen van het programma met zich meebrengen, en zelfs een wijziging in de 35 architectuur van de hardware.
1015579 5
Fig. 1 toont in feite hoe de uitvoering van verschillende taken van een programma verloopt binnen een viertal processors zonder dat daarbij vooraf vastgestelde regels in acht worden genomen. De delen van het programma zijn 5 feitelijk neergelegd daar waar een processor beschikbaar was. De elementaire programmataken zijn er wel, maar het programma is niet verdeeld in elementaire programmataken in die zin dat deze elementaire programmataken ook op een ordelijke wijze in de processors terecht komen. Sommige 10 elementaire programmataken kunnen zelfs in twee processors terecht komen. Een op die wijze verdeeld programma is moeilijk in bedrijf te stellen en is, zoals reeds eerder aangegeven, weinig flexibel.
15 Fig. 2 geeft een programma architectuur voor elementaire programmataken weer die onderling zijn verbonden op een wijze zoals weergegeven in Fig. 1. Voor elke processor HW1, HW2,..HW4 zijn de daarbij horende programmalagen weergegeven. Een real time operating system RTOS is 20 ondergebracht in elke processor. Het operating system maakt het op de gebruikelijke wijze mogelijk de programmacodes 21, 22, 23 uit te voeren. Deze programmacodes komen voort uit de specificaties 24. De programmalaag gedefinieerd door zijn applicatiecodes 21, 22, 23 bevat het eerder genoemde 25 samenstel van taken SW’l,.. ,SW’k,.. ,SW’N.
Fig. 3 geeft op schematische wijze een programma architectuur weer zoals die wordt verkregen door toepassing van de werkwijze volgens de uitvinding. In een eerste fase 30 wordt volgens de werkwijze het programma in elementaire programmataken verdeeld. Deze taken worden geprogrammeerd tot codegroepen die de programmacodes vormen. Gemakshalve wordt een elementaire programmataak hierna gelijkgesteld aan de bijbehorende programmacode. De wijze van 35 onderbrengen wordt bijvoorbeeld gemaakt door een software
IU\5Ö79 I
6 tool 31, zoals CASE, een acroniem voor Computer-Assisted Software Engineering. Dit bekende tool CASE definieert bovendien de structuur van het programma, dat wil zeggen de verbindingen tussen de verschillende elementaire 5 programmataken of de wijze waarop deze van elkaar afhangen. Bij voorkeur is de wijze van onderbrengen zodanig dat de programmacodes zo klein mogelijk zijn, dat wil zeggen dat het aantal regels code zo klein mogelijk is, bijvoorbeeld in de orde van 100 tot 200. Het software tool CASE 10 realiseert met name deze structuur als funktie van de beginspecificaties 24. Het tooi definieert bijvoorbeeld een lijst van de elementaire programmataken en beschrijft bovendien de manier waarop deze onderling zijn verbonden.
De gegevens over de programmastructuur en de takenlijst 15 worden vastgelegd in een dataset 32. De specificaties definiëren bovendien de funktie van de software, wat wordt vastgelegd in een dataset 33. Bovendien wordt een lijst van beschikbare processoren opgesteld, waarin kan worden vastgelegd hoe deze processoren onderling zijn verbonden.
20 Deze lijst legt de hardwarestructuur vast die de verzameling van programma's ondersteunt, bestaande uit elementaire programmataken. Ze kan worden vastgelegd in een dataset 34. De datasets 32, 33, 34 vormen een beschrijving van het systeem, welke beschrijving vervolgens wordt 25 gebruikt bij het onderbrengen van de programmataken.
Als eenmaal de structuur van het programma is gedefinieerd, worden de verschillende programmataken ondergebracht in de verschillende processors. Dit onderbrengen wordt 30 bijvoorbeeld uitgevoerd door een tweede software tooi 35, hierna aangeduid als het DRAM tooi, wat staat voor de Engelse uitdrukking Dependency Related Allocation and Mapping. Dit tool realiseert een eerste wijze van onderbrengen van de programmataken op basis van de vooraf 35 bepaalde datasets 32, 33, 34. Deze wijze van onderbrengen
π 'i ς*ϊ7α I
7 gebeurt bijvoorbeeld op een willekeurige wijze. Daarna voert het DRAM tooi een aantal controles uit met evaluatie-parameters, volgens vooraf bepaalde criteria. Deze criteria hangen bijvoorbeeld af van de gegevensstroom, de belading 5 van de processors, de timing van de taken of van beperkingen in het ontwerp. Als een gecontroleerde parameter niet voldoet aan een gegeven criterium, worden strafpunten toegekend aan de wijze van onderbrengen. Als alle parameters van de vooraf bepaalde lijst zijn 10 gecontroleerd, berekent het DRAM tooi de kosten door de strafpunten op te tellen. De optimale wijze van onderbrengen is degene met de laagste kosten. In de praktijk kan een wijze van onderbrengen worden gekozen waarvan de kosten niet minimaal zijn. In elk geval wordt de 15 keuze gemaakt afhankelijk van de kosten, waarbij een oplossing met te hoge kosten wordt verworpen.
De volgende regels beschrijven een toepassingsvoorbeeld van de controle van parameters die de bestemming van de 20 programmataken vastleggen en van de daarmee samenhangende strafpunten. In dit voorbeeld wordt een systeem voorzien van vier kaarten HW1, HW2, HW3, HW4 bezien, waarbij elke kaart een of meer processors kan bevatten.
25 Fig. 4 illustreert een manier om de parameters die van de gegevensstroom afhangen te controleren. Voor de controle van de gegevensstroom past men een gepijplijnde verwerking toe vanaf de requests die op de eerste kaart HW1 aankomen. Meer nauwkeurig wordt een request 41 van het type trigger 30 verzonden bij aankomst bij deze eerste kaart. Dit request heeft tot gevolg dat de parameters 42 aan de uitgang van de vierde kaart HW4 worden geactiveerd. Dat houdt trouwens in dat de parameters die door de eerste kaart HW1 worden verwerkt tengevolge van request 41, ook door alle andere 35 kaarten HW2, HW3, HW4 zullen worden verwerkt gedurende de
'i 0 1 557.Q
δ hele verwerking. Om het overdragen van niet noodzakelijke gegevens tot een minimum te beperken, moeten de gegevens juist op tijd worden verwerkt, net voordat ze zullen worden gebruikt. Er van uitgaande dat alle behandelde gegevens, 5 voornamelijk de gegevens die gelijk met request 41 zijn afgegeven, nodig zijn op de andere kaarten HW2, HW3, HW4, is de eerste kaart HW1 voorzien van communicatieverbindingen 43, 44, 45 naar de andere processors. Voor elke programmataak SWk, houdt het DRAM tooi de programmataak of 10 taken in de gaten die de gegevens produceren voor die elementaire taak SWk. De programmataak of taken die die gegevens produceren kunnen worden verwerkt door dezelfde of door een andere kaart, en op dezelfde kaart door dezelfde of door een andere processor.
15
Een eerste parameter die de gegevensstroom karakteriseert kan de forward communicatie tussen de processors zijn. In dat geval worden de inputgegevens van een bepaalde programmataak verwerkt door een kaart die fysiek juist vóór 20 de kaart zit die de gegevens verwerkt. Een programmataak van de derde kaart HW3 heeft bijvoorbeeld een parameter nodig die op de tweede kaart HW2 wordt geproduceerd. Alle ingangsparameters worden bij voorkeur verwerkt door dezelfde processor, of op zijn minst door dezelfde kaart, 25 met als doel de overdracht van gegevens te minimaliseren.
De straf die wordt gegeven voor een forward communicatie tussen kaarten is daarom zwaarder dan de straf voor een forward communicatie tussen processors. Nog strenger wordt een overdracht tussen twee of meer kaarten bestraft. Het 30 DRAM tooi kan bijvoorbeeld de straf voor een forward communicatie tussen kaarten vermenigvuldigen met het aantal kaarten dat moet worden gepasseerd tussen de produktie van een parameter en de toepassing daarvan. Voor een forward communicatie tussen kaarten kunnen bijvoorbeeld vier 35 strafpunten worden gegeven.
1 Π 1 RR~7Ck 9
Een tweede parameter die de gegevensstroom karakteriseert kan de backward communicatie tussen de kaarten zijn. De ingangsparameter wordt verwerkt door een kaart die fysiek achter de huidige kaart staat, wat wil zeggen dat de 5 gegevens nog niet zijn verwerkt. Een programmataak van de tweede kaart HW2 heeft bijvoorbeeld een parameter nodig die door een programmataak op de derde kaart HW3 wordt geproduceerd. Om de overdracht van gegevens van de ene naar de andere kaart te beperken, moeten de gegevens in één 10 bepaalde richting doorstromen, van de eerste kaart HW1 naar de laatste kaart HW4. Omdat het dus belangrijk is backward communicatie te vermijden, wordt een zware straf toegekend aan een dergelijke communicatie. Die straf kan bijvoorbeeld 1000 strafpunten bedragen.
15
Een ander criterium waarmee rekening moet worden gehouden is de beladingsgraad van de processors. Het DRAM tooi houdt rekening met de beladingsgraad van de processors, met als doel te voorkomen dat te veel taken binnen één processor 20 worden ondergebracht. Voor elke programmataak wordt de benodigde beladingsgraad voor een processor vastgelegd in een input dataset, bijvoorbeeld in de dataset die ook de lijst van deze taken bevat. De beladingsgraad van een processor voor het uitvoeren van een programmataak kan 25 bijvoorbeeld worden gedefinieerd voor de maximale theoretische belading, de maximale praktische belading of de gemiddelde belading voor die taak. Op die manier wordt de beladinggraad van een processor als een directe methode gebruikt om er zeker van te zijn dat de taken op een 30 correcte wijze worden verdeeld tussen de verschillende processors.
Een eerste situatie waar rekening mee moet worden gehouden is die waarbij de uitvoering van een taak met zich 35 meebrengt dat een bepaalde drempel wordt overschreden,
U ί R R 7 Q
10 bijvoorbeeld 95% van de maximaal geautoriseerde belading van de processor. Het DRAM tooi keurt deze situatie niet goed. De straf voor het overschrijden van deze 95% kan dan bijvoorbeeld 10000 bedragen. Het is trouwens mogelijk om 5 verschillende strafmaten te bedenken voor verschillende beladingsgraden lager dan het absolute maximum van 95%, met steeds minder zware straffen. Straf kan ook worden uitgedeeld voor een processor die onvoldoende beladen is. Dit leidt er toe dat de beschikbare processors optimaal 10 worden benut en dat in een extreme situatie een extra belading toelaatbaar is.
Een ander belangrijk criterium waarmee rekening moet worden gehouden is de tijd waarin de gegevens worden verwerkt.
15 Naar deze verwerkingstijd kan op minstens twee manieren worden gekeken. Een eerste executietijd waarop moet worden gelet kan de tijd zijn die nodig is om alle taken die in een processor zijn ondergebracht uit te voeren met hun executietijden. Deze executietijd wordt gedefinieerd voor 20 elke taak, waarbij deze informatie bijvoorbeeld wordt opgeslagen in de dataset die de taken beschrijft. Het DRAM tooi moet bijvoorbeeld verifiëren dat de totale executietijd van de taken in dezelfde processor niet groter is dan een gegeven tijd. Die verificatie kan nodig zijn, want er 25 is niet noodzakelijkerwijs een verband tussen de beladingsgraad van een processor en de executietijd. Als de processor een gegeven waarde passeert, wordt bijvoorbeeld een straf van 10000 toegekend. Het is mogelijk een afnemende straf toe te kennen voor verschillende drempels, 30 horend bij afnemende executietijden.
Een tweede executietijd waarmee rekening moet worden gehouden is de executietijd van het complete programma.
Alle executietakken van het programma worden behandeld door 35 het DRAM tooi op elke kaart. De tak die de grootste totale 015579 11 executietijd heeft bepaalt de executietijd met betrekking tot die kaart. De executietijd van het programma voor het hele systeem is de som van de executietijden van elke kaart HW1, HW2, HW3, HW4. Een fout met betrekking tot de maximaal 5 toegestane executietijd kan zwaar worden gestraft, bijvoorbeeld door er een straf van 250000 aan toe te kennen. Het verkleinen van de maximaal toegestane executietijd, of het vergroten van de straf, zet het DRAM tooi er toe aan om processors parallel te laten werken.
10
Een andere reeks controlecriteria kan betrekking hebben op beperkingen in het systeemconcept. De bedenkers van het concept kunnen om verschillende redenen de mapping willen beïnvloeden, dat wil zeggen het onderbrengen van de 15 programmataken in de processors. De werkwijze volgens de uitvinding kan verschillende faciliteiten daartoe bieden. Meer in het bijzonder kan de ontwerper een specifieke taak in een specifieke processor onderbrengen, wat nauwkeurig wordt omschreven in bijvoorbeeld de dataset die het systeem 20 beschrijft. Gegeven het feit dat het DRAM tooi zich niet met een op dergelijke wijze ondergebrachte taak bemoeit, bestaat er ook geen aanleiding tot het uitdelen van strafpunten. Wel kan het DRAM tooi een waarschuwing produceren als er een gevaarlijke situatie ontstaat 25 bijvoorbeeld ten aanzien van de executietijd of de belading van de processor.
Het is ook mogelijk verschillende programmataken te koppelen, dat wil zeggen dat de eis wordt opgelegd dat ze 30 in dezelfde processor of op dezelfde kaart worden ondergebracht, waarbij de processor of kaart niet wordt voorgeschreven. Dit kan met name voordelig zijn als de taken eenzelfde datapool delen. Deze koppeling van taken kan worden gepreciseerd in de dataset van de beschrijving. 35 Het niet respecteren van deze eis kan worden gestraft met 1015a79 12 een betrekkelijk zware straf, bijvoorbeeld gelijk aan honderd. Als de koppeling ónmogelijk is omdat regels betreffende het systeemconcept worden geschonden, bijvoorbeeld betreffende de executietijd of de belading van 5 de processors, dan stuurt het DRAM tooi een waarschuwings-boodschap. De verzameling van straffen wordt bijvoorbeeld vastgelegd in de configuratie dataset van het DRAM tooi.
De straffen worden bij voorkeur behoedzaam gekozen. Meer in 10 het bijzonder moet men er een wakend oog op houden de strafmaat te laten overeenkomen met de mate waarin een ontwerpparameter wordt beperkt. De verschillende ontwerp-regels zijn met elkaar verbonden, in het bijzonder beïnvloedt de ene ontwerpregel de andere. Het beste ontwerp 15 kan de beste kombinatie van ontwerpregels zijn. Het beste ontwerp moet dan ook dat ontwerp zijn waarvoor de kosten, uitgedrukt in de vorm van straffen, het kleinste zijn. Volgens de uitvinding bestaat een methode voor het bepalen van de minimum kosten, of althans nagenoeg de minimum 20 kosten, uit het herhalen van een algoritme voor het onderbrengen van de programmataken. Bij het herhalen van dit algoritme verkrijgt men oplossingen met verschillende straffen. De verschillende fasen die worden herhaald bestaan uit: 25 de fase van het onderbrengen van de programmataken in de processors; de controlefase van de evaluatieparameters voor de ondergebrachte taken, waarvan vooraf een lijst is vastgesteld; 30 de fase van de kostencalculatie van de wijze van onderbrengen.
Veronderstellen we dat we verschillende goede oplossingen kunnen verkrijgen. Voor deze beste oplossingen zullen de 35 kosten in de vorm van straf onderling niet veel 1 01 5579 13 verschillen. Nemen we bijvoorbeeld een drempel die tussen 2% en 3% ligt. Als de variatie in de kosten van iteratie tot iteratie onder deze drempel ligt, dan wordt deze oplossing als acceptabel beschouwd. In de praktijk kan dus 5 een oplossing worden behouden, terwijl de variatie in de kosten nog convergeert onder drempel van 2% tot 3%. In de eerste fase worden alle taken op een willekeurige manier in een processor ondergebracht. In de andere fasen, van iteratie tot iteratie, wordt slechts één taak op een 10 willekeurige wijze opnieuw ondergebracht in een andere processor, die ook op willekeurige wijze is gekozen. Voor elk van deze iteraties worden de kosten berekend.
De totale duur van het zo onderbrengen van taken (mapping) 15 zoals die door het DRAM tooi wordt gerealiseerd, vergt minder dan vijf minuten per iteratie. Met dit tooi kan dus een groot aantal iteraties worden uitgevoerd. De beste wijze van onderbrengen kan dus betrekkelijk snel en automatisch, en dus op een voordelige wijze worden 20 verkregen. Zoals hiervoor al is aangegeven, geven de kosten in de vorm van strafpunten aan dat deze uiteindelijke wijze van onderbrengen is verkregen. Als men een acceptabele oplossing nadert moeten de kosten per iteratie steeds minder gaan variëren, tenminste als de straffen met zorg 25 zijn gekozen, dat wil zeggen als funktie van de ernst van de beperking verbonden aan een ontwerpparameter. Als de kosten erg sterk variëren, duidt dit er op dat een of meerdere ontwerpparameters helemaal niet goed zijn. In plaats van te starten met een volledig willekeurige mapping 30 is het ook mogelijk een keuze vooraf voor verschillende processors te maken op basis van bepaalde criteria, bijvoorbeeld in verband met de gegevensstroom.
Als het onderbrengen van de taken eenmaal is gerealiseerd 35 door het DRAM tooi, dat wil zeggen als er eenmaal een i 01 5579 14 oplossing is bepaald met acceptabele kosten uitgedrukt in strafpunten, wordt door code generator 36 een code gegenereerd die het mogelijk maakt alle programmataken uit te laten voeren door de verschillende processors of kaarten 5 HW1, HW2,.. HW4 die meespelen. Met een programmataak correspondeert elementaire programmataak SWk, die enkele tientallen of enkele honderden regels code bevatten. De gearceerde delen in Fig. 3 komen overeen met de code, gegenereerd door codegenerator 36. Deze genereert een 10 middleware laag 37 die communiceert met de operating systems RTOS van de processors of kaarten. De codegenerator produceert eveneens een programmalaag 38 rond elke elementaire programmataak, die de mogelijkheid biedt te communiceren met middleware laag 37 en dus te worden 15 geëxecuteerd door de overeenkomstige processor. De generator maakt dus een soort lijmlaag uit code, die de elementaire programmataken SWk verbindt met de processors. Hij maakt het in feite mogelijk de elementaire programmataken te verbinden met fysieke lokaties, 20 processors en kaarten, aangegeven door het DRAM tooi, overeenkomstig de verkregen wijze van onderbrengen.
Fig. 5 illustreert een mogelijke wijze van onderbrengen van de elementaire programmataken SW1,..,SWk,..,SWN op kaarten 25 HW1, HW2, HW3, HW4, verkregen onder toepassing van de inventieve werkwijze. Deze figuur laat zien dat er goed rekening is gehouden met de beperkingen in verband met de gegevensstroom. Meer in het bijzonder zijn de elementaire programmataken SWk beter geschikt op de verzameling kaarten 30 HW1, HW2, HW3, HW4. De andere beperkingen, met name de belading en de executietijden, zijn zeker ook gerespecteerd. Fig. 5 illustreert ook de andere voordelen van de uitvinding. Zij toont in het bijzonder dat een grotere onderhoudbaarheid en een toegenomen betrouwbaarheid 35 zijn verkregen, speciaal als een storing in een kaart • ui 5579 i 15 !
optreedt kan deze kaart zonder interface problemen worden vervangen door andere kaarten. In de verkregen oplossing I
zijn de componenten van het hele systeem ook eenvoudiger en voordeliger te onderhouden. In bijvoorbeeld een wijze van 5 onderbrengen zoals getoond in Fig. 5 kan een eerste onderhoudsman belast worden met het onderhoud van de eerste kaart, een tweede onderhoudsman met het onderhoud van de tweede kaart enz. Het samenbouwen van de kaarten vindt probleemloos plaats, omdat de fysieke en de funktionele 10 interface van de ene kaart met de andere eenvoudig is.
Tenslotte geldt dat de uitvinding een grote flexibiliteit toestaat bij het onderbrengen van taken. Het is inderdaad erg eenvoudig een of enkele taken toe te voegen onder 15 toepassing van de werkwijze volgens de uitvinding, door bijvoorbeeld gebruik te maken van het DRAM tooi. In dat geval gaat men bijvoorbeeld uit van de bestaande configuratie, waarbij de nieuwe taak of taken op willekeurige wijze worden toegevoegd. Daarna start men de 20 iteraties. Het resultaat kan inhouden dat een nieuwe processor moet worden toegevoegd als er geen oplossing met acceptabele kosten wordt verkregen.
De uitvinding is beschreven aan de hand van een voorbeeld 25 met een toepassing met vier processors, maar het aantal processors kan zeker groter zijn.
1015579

Claims (6)

1. Werkwijze voor het automatisch verdelen van programma-taken over een verzameling processors, met het kenmerk, dat 5 ze tenminste omvat: een fase waarin programmataken worden ontbonden in elementaire programmataken (SW1,..,SWk,..,SWN), en waarin een dataset (32) wordt gecreëerd waarin de verbindingen tussen de elementaire programmataken worden gedefinieerd en 10 een dataset (34) wordt gecreëerd waarin de verbindingen tussen de processors (HW1, HW2, HW3, HW4) worden gedefinieerd; een fase waarin de elementaire programmataken in de processors (HW1, HW2, HW3, HW4) worden ondergebracht op 15 basis van vooraf bepaalde datasets (32, 34); een fase waarin evaluatieparameters voor de zo ondergebrachte elementaire programmataken worden bepaald op basis van een vooraf vastgestelde lijst, waarbij strafpunten worden toegekend als de elementaire 20 programmataken zodanig zijn ondergebracht dat een parameter niet voldoet aan een gegeven criterium; een fase waarin de kosten wordt berekend voor de zo ondergebrachte elementaire programmataken, waartoe de som van alle toegekende strafpunten wordt bepaald en waarbij 25 afhankelijk van de kosten een wijze van onderbrengen al dan niet wordt behouden.
2. Werkwijze volgens conclusie 1, met het kenmerk, dat de wijze van onderbrengen met althans in hoofdzaak de laagste 30 kosten wordt behouden.
3. Werkwijze volgens één der voorgaande conclusies, met het kenmerk, dat de fasen van het onderbrengen van de elementaire programmataken, het bepalen van de 35 evaluatieparameters en het berekenen van de kosten worden 1015579 herhaald, waarbij een wijze van onderbrengen alleen dan wordt behouden als de verandering in de kosten binnen bepaalde drempelwaarden convergeert.
4. Werkwijze volgens conclusie 3, met het kenmerk, dat bij een eerste iteratie alle taken binnen een processor op een willekeurige manier worden ondergebracht, waarna voor opeenvolgende iteraties steeds een geselecteerde taak op een willekeurige manier in een andere processor wordt 10 ondergebracht.
5. Werkwijze volgens één der voorgaande conclusies, met het kenmerk, dat de evaluatieparameters onder andere afhangen van de gegevensstroom, de belading van de processors en van 15 de timing van de elementaire programmataken.
6. Werkwijze volgens één der voorgaande conclusies, met het kenmerk, dat voor een elementaire programmataak (SW1,..,SWk,..,SWN), overeenkomend met de bijbehorende 20 programmacode, een codegenerator (36) een middleware laag (37) genereert die communiceert met het operating system, RTOS, van de processors, dat de codegenerator eveneens een programmalaag (38) produceert rond elke elementaire programmataak die hem in staat stelt te communiceren met de 25 middleware laag (37) en om aldus te worden uitgevoerd door de overeenkomstige processor, conform de gekozen wijze van onderbrengen. 1 Π 1 RRJ Q
NL1015579A 2000-06-30 2000-06-30 Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors. NL1015579C1 (nl)

Priority Applications (10)

Application Number Priority Date Filing Date Title
NL1015579A NL1015579C1 (nl) 2000-06-30 2000-06-30 Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.
PCT/FR2001/002019 WO2002001346A2 (fr) 2000-06-30 2001-06-26 Procede d'implantation automatique de fonctions logicielles sur un ensemble de processeurs_______________________________________
EP01984068A EP1323029A2 (fr) 2000-06-30 2001-06-26 Procede d'implantation automatique de fonctions logicielles sur une ensemble de processeurs
US10/312,178 US20040163075A1 (en) 2000-06-30 2001-06-26 Method for the automatically implanting software functions on a set of processors
AU2001270665A AU2001270665A1 (en) 2000-06-30 2001-06-26 Method for automatically implanting software functions on a set of processors
IL15364001A IL153640A0 (en) 2000-06-30 2001-06-26 Method for automatically implanting software functions on a set of processors
CA002414523A CA2414523A1 (fr) 2000-06-30 2001-06-26 Procede d'implantation automatique de fonctions logicielles sur un ensemble de processeurs
JP2002506415A JP2004509386A (ja) 2000-06-30 2001-06-26 複数のプロセッサにソフトウェア機能を自動的に割り当てる方法
KR1020027017987A KR20030034115A (ko) 2000-06-30 2001-06-26 한 세트의 프로세서들 사이에 소프트웨어 기능을자동적으로 할당하는 방법
ZA200300008A ZA200300008B (en) 2000-06-30 2003-01-02 Method for automatically implanting software functions on a set of processors.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL1015579A NL1015579C1 (nl) 2000-06-30 2000-06-30 Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.
NL1015579 2000-06-30

Publications (1)

Publication Number Publication Date
NL1015579C1 true NL1015579C1 (nl) 2002-01-02

Family

ID=19771637

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1015579A NL1015579C1 (nl) 2000-06-30 2000-06-30 Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.

Country Status (10)

Country Link
US (1) US20040163075A1 (nl)
EP (1) EP1323029A2 (nl)
JP (1) JP2004509386A (nl)
KR (1) KR20030034115A (nl)
AU (1) AU2001270665A1 (nl)
CA (1) CA2414523A1 (nl)
IL (1) IL153640A0 (nl)
NL (1) NL1015579C1 (nl)
WO (1) WO2002001346A2 (nl)
ZA (1) ZA200300008B (nl)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174379B2 (en) 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US20070208956A1 (en) * 2004-11-19 2007-09-06 Motorola, Inc. Energy efficient inter-processor management method and system
US7743366B2 (en) * 2005-10-03 2010-06-22 Arm Limited System and method for compiling a computer program
JP4756553B2 (ja) * 2006-12-12 2011-08-24 株式会社ソニー・コンピュータエンタテインメント 分散処理方法、オペレーティングシステムおよびマルチプロセッサシステム
US20080147221A1 (en) * 2006-12-13 2008-06-19 Garg Sukesh Grid modeling tool
US8751211B2 (en) 2008-03-27 2014-06-10 Rocketick Technologies Ltd. Simulation using parallel processors
US9032377B2 (en) 2008-07-10 2015-05-12 Rocketick Technologies Ltd. Efficient parallel computation of dependency problems
WO2010004474A2 (en) * 2008-07-10 2010-01-14 Rocketic Technologies Ltd Efficient parallel computation of dependency problems
US8959370B2 (en) 2008-10-03 2015-02-17 University Of Sydney Scheduling an application for performance on a heterogeneous computing system
US9128748B2 (en) 2011-04-12 2015-09-08 Rocketick Technologies Ltd. Parallel simulation using multiple co-simulators
CN102779075B (zh) * 2012-06-28 2014-12-24 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
WO2014087496A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 グラフ処理方法、および情報処理システム
FR3063359B1 (fr) * 2017-02-24 2019-06-07 Renault S.A.S. Methode de determination d'une performance temporelle d'une unite de traitement electronique executant un algorithme
WO2021261252A1 (ja) * 2020-06-24 2021-12-30 三菱電機株式会社 演算回路、演算方法、プログラム、および演算回路の設計方法
US20220269424A1 (en) * 2021-02-19 2022-08-25 Vast Data Ltd. Resource allocation in a storage system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342765A (ja) * 1989-07-10 1991-02-22 Nec Corp 分散処理装置
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
JPH08166931A (ja) * 1994-12-13 1996-06-25 Mitsubishi Electric Corp 並列計算機の負荷分散方法

Also Published As

Publication number Publication date
US20040163075A1 (en) 2004-08-19
JP2004509386A (ja) 2004-03-25
CA2414523A1 (fr) 2002-01-03
ZA200300008B (en) 2004-06-03
WO2002001346A2 (fr) 2002-01-03
IL153640A0 (en) 2003-07-06
KR20030034115A (ko) 2003-05-01
WO2002001346A3 (fr) 2002-08-15
AU2001270665A1 (en) 2002-01-08
EP1323029A2 (fr) 2003-07-02

Similar Documents

Publication Publication Date Title
NL1015579C1 (nl) Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.
CN102089752B (zh) 依赖性问题的有效率的并行计算
US8990827B2 (en) Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels
CA2697306C (en) Transactional graph-based computation with error handling
Van Dijk et al. Sylvan: Multi-core decision diagrams
CN101887380A (zh) 优化在多平台系统中执行的应用的分布
KR20110071097A (ko) 소스 코드 처리 방법, 시스템, 및 프로그램
US20100153937A1 (en) System and method for parallel execution of a program
CN114677222A (zh) 区块链的并行交易处理方法、系统和计算机存储介质
CN111563040A (zh) 区块链智能合约代码测试方法及装置
US20040093477A1 (en) Scalable parallel processing on shared memory computers
CN116862019B (zh) 基于数据并行范式的模型训练方法及装置
CN113743943A (zh) 在区块链中执行交易的方法、区块链、主节点和从节点
CN113743949B (zh) 在区块链中执行交易的方法、区块链、主节点和从节点
CN114331440A (zh) 一种冲突检测及性能优化方法和装置
Ferreira et al. Using B refinement to analyse compensating business processes
CN113052687B (zh) 一种交易路由分发方法和相关装置
US6880153B1 (en) Method and apparatus for varying the level of correctness checks executed when performing correctness checks opportunistically using spare instruction slots
Montesco et al. Scheduling heuristic resourced-based on task time windows for APS (Advanced planning and scheduling) Systems
JP3955843B2 (ja) マイクロプロセッサの並列シミュレーションシステム
KR102507732B1 (ko) 허가형 블록체인에서의 분리형 보증 처리 방법 및 시스템
KR102364906B1 (ko) 서로 다른 블록체인들 사이의 토큰 전송 방법, 언스펜트 집합 재구성 방법 및 이를 위한 장치
Gustavsson et al. Evaluation of design options in embedded automotive product lines
RU2793750C1 (ru) Способ подтверждения повторно используемых требований к программному обеспечению в процессе управления изменениями
JP6937337B2 (ja) 分散処理方法、分散処理システム及びサーバ

Legal Events

Date Code Title Description
VD1 Lapsed due to non-payment of the annual fee

Effective date: 20050101