• No results found

Transformations for polyhedral process networks Meijer, S.

N/A
N/A
Protected

Academic year: 2021

Share "Transformations for polyhedral process networks Meijer, S."

Copied!
3
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Transformations for polyhedral process networks

Meijer, S.

Citation

Meijer, S. (2010, December 8). Transformations for polyhedral process networks. Retrieved from https://hdl.handle.net/1887/16221

Version: Corrected Publisher’s Version

License: Licence agreement concerning inclusion of doctoral thesis in the Institutional Repository of the University of Leiden

Downloaded from: https://hdl.handle.net/1887/16221

Note: To cite this publication please use the final published version (if applicable).

(2)

Samenvatting

Deze dissertatie beschrijft methoden en technieken voor het analyseren en program- meren van multiprocessor systemen die zijn ge¨ıntegreerd in een enkele chip. We richten ons voornamelijk op applicaties voor de verwerking van signalen en beelden in ingebedde multimedia toepassingen. Deze toepassingen kunnen het best worden gekarakteriseerd als een verzameling van rekentaken die data uitwisselen in de vorm van datastromen. In de meeste van deze toepassingen zijn doorstroomsnelheden van cruciaal belang, waardoor rekentaken snel en, indien mogelijk, gelijktijdig moeten worden uitgevoerd. Deze eisen leiden vanzelf tot implementatiestructuren die bestaan uit meerdere, vaak ongelijke, processoren die autonoom rekenen en zijn aangesloten op een communicatie-, synchronisatie-, en geheugeninfrastructuur voor de uitwissel- ing van data. De complexiteit van zulke ingebedde multi-processor systemen heeft een niveau bereikt waardoor het noodzakelijk is geworden om het programmeren van deze systemen op systematische en automatische wijze uit te voeren.

Voor het effici¨ent programmeren van multi-processor systemen heeft het Leiden Embedded Research Center (LERC) een ontwerpmethodologie ontwikkeld die uit- gaat van twee principes. Het eerste is gebaseerd op het feit dat toepassingen gespeci- ficieerd worden in termen van datastroom procesnetwerken, in het bijzonder Poly- hedral Proces Netwerken(PPN), die goed passen bij de beoogde datastroom appli- caties. Hierdoor is een ontwerper veel beter in staat, in tegenstelling tot monolitische en sequenti¨ele applicatiebeschrijvingen, om autonome taken toe te kennen aan ver- schillende processoren van het multi-processor systeem. Het tweede principe heeft als doel multi-processor systemen te cre¨eeren die naadloos aansluiten op de eigen- schappen van de stroomgebaseerde toepassingen, waardoor de applicaties zo effici¨ent mogelijk uitgevoerd kunnen worden. Deze ontwerptechnieken worden volledig on- dersteund door het vertaalprogramma Daedalus. Dit is een vertaler die drie hoog- niveau beschrijvingen (de applicatie, het multi-processor systeem, en de toekenning van applicatietaken aan rekeneenheden van het multi-processor systeem) automatisch

(3)

146 Samenvatting

omzet naar een laagniveau beschrijving van het systeem. Dit stelt een ontwerper in staat om op volledig automatische wijze een applicatie te implementeren op een multi-processor systeem.

Deze dissertatie richt zich op de beschrijving van applicaties in de vorm van een Polyhedral Proces Netwerk (PPN), en dan met name op het omvormen van PPNs.

Het probleem is dat PPNs automatisch afgeleid kunnen worden, maar niet noodza- kelijk tot de gewenste doorstroomsnelheden leiden. Het omvormen van het PPN is dan noodzakelijk om het gewenste resultaat te bereiken. Het omvormen van een PPN kan op twee manieren gebeuren: een proces uit het PPN kan opgesplitst worden in meerdere parallele processen, of meerdere processen kunnen samengevoegd worden in ´e´en samengesteld proces. In het eerste geval, spreken we van de process splitting transformatie die toegepast wordt om de applicatie te versnellen, en in het tweede geval spreken we van de process merging transformatie dat toegepast wordt om het aantal processen in het PPN te verminderen indien nodig. Het probleem bestond eruit dat beide transformaties wel gedefinieerd waren, maar de ontwerper wist niet pre- cies hoe deze het best toegepast konden worden. Er zijn namelijk vele verschillende mogelijkheden waarop een bepaalde transformatie toegepast kan worden, en vele verschillende factoren spelen een rol in de uiteindelijke doorstroomsnelheden van applicaties. Om de ontwerper te helpen met het zo efficient mogelijk toepassen van transformaties, benoemen we in hoofdstuk 3 de factoren die belangrijk zijn voor de process splitting transformatie, hoe deze ge¨evalueerd kunnen worden, en een aanpak voor het kiezen van de beste transformatie. In hoofdstuk 4 doen we hetzelfde, maar dan voor de process merging transformatie. Deze analyse is wezenlijk anders dan de process splitting transformatie, omdat het niet lokaal uitgevoerd wordt zoals bij de process splitting, maar globaal voor het hele PPN. Dat wil zeggen dat we voor het samenvoegen van processen een model voor de doorstroomsnelheid defini¨eren. Dit stelt de ontwerper in staat om een transformatie op een bepaalde manier uit te voeren, de doorstroomsnelheid te evalu¨eren, en het beste alternatief te kiezen. Daarnaast pre- senteren we in hoofdstuk 5 een aanpak die beide transformaties combineert. Hierdoor lossen we het probleem op dat de transformaties op vele verschillende mogelijkhe- den achter elkaar toegepast kunnen worden (in verschillende volgordes). Tenslotte presenteren we in hoofdstuk 6 technieken om PPNs op multi-processor systemen uit te voeren. We beschrijven technieken voor het afbeelden van de verschillende ele- menten van PPNs op de Intel IXP network processor en de Cell platform.

Referenties

GERELATEERDE DOCUMENTEN

5 Appling Transformations in Combination 85 5.1 Impact of the Transformation on Performance

The third is a mapping specification describing how the processes of the PPN are as- signed to the processing elements of the hardware platform. The ESPAM tool takes these

It can be seen that process P0 is a source process because it does not read data from other processes, and that process P2 is a sink process because it does not write data to

Note that in this example, the first iterations of the second partition for the diagonal plane-cut and unfolding on the outermost loop i are the same, i.e., iteration (1, 0), but

Then we increase the workload of the producer processes and intentionally create a compound process that is the most compute intensive process. We check if this is captured by

Before introducing our solution in a more formal way, we show how our approach intuitively works for the examples discussed in Section 5.1. We have already shown 3 different

The first two classes of FIFO channels are easy to implement efficiently, as FIFOs from these classes are realized using just local (for producer and consumer processes) memories

• Conclusion II: by first splitting up all processes and by subsequently merg- ing the different process instances into load-balanced compound processes, we solved the problem