Abstract-Stream-behandlingsapplikationer använder online-analys för att inta högkvalitativa datakällor, bearbeta dem i farten och generera liveresultat i rätt tid. Dataflödesgrafen representation av dessa applikationer underlättar specifikationen av stream computing uppgifter med lätthet, och även lämpar sig för eventuell drifttid utnyttjande av parallellisering på multicore processorer. Medan dataflödet grafer naturligt innehåller en rik uppsättning av parallelliseringsmöjligheter, utnyttjar dem är utmanande på grund av det kombinerade antalet möjliga konfigurationer. Dessutom är den bästa konfigurationen dynamisk i naturen; den kan skilja sig åt mellan flera körningar av programmet, och även under olika faser av samma körning. I detta dokument föreslår vi en autopipelineing lösning som kan dra nytta av multicore processorer för att förbättra genomströmningen av strömmande program, på ett effektivt och transparent sätt. Lösningen är effektiv i den meningen att den ger ett bra utnyttjande av resurser genom att dynamiskt hitta och utnyttja källor till rörledning parallellism i streaming applikationer. Det är transparent i den meningen att det inte kräver några tips från programutvecklare. Som en del av vår lösning beskriver vi ett lätt runtime profileringssystem för att lära sig resursanvändning av operatörer som innehåller applikationen, en optimeringsalgoritm för att hitta de bästa platserna i dataflödesgrafen för att utforska ytterligare parallellism, och ett adaptivt styrsystem för att hitta rätt nivå av parallellism. Vi har implementerat vår lösning i ett industrihållfast strömbearbetningssystem. Vår experimentella utvärdering baserad på mikrobenchmarks, syntetisk arbetsbelastning, samt verkliga applikationer bekräftar att vår design är effektiv för att optimera genomströmningen av stream processing applikationer utan att kräva några ändringar av applikationskoden.
Dessutom presenterar Tang och Gedik REF en teknik som automatiskt identifierar rörledning parallellism i strömbehandlingsapplikationer, och den utför dynamisk profilering för att hitta konfigurationen av körtidssystemet som leder till högsta prestanda.
Autopipelining for Data Stream Processing
{'venue': 'IEEE Transactions on Parallel and Distributed Systems', 'journal': 'IEEE Transactions on Parallel and Distributed Systems', 'mag_field_of_study': ['Computer Science']}