Abstract-Fördröjningen av parallella programmeringsmodeller och språk bakom utvecklingen av heterogena mångkärniga processorer har lämnat ett gap mellan beräkningsförmågan hos moderna system och förmågan hos applikationer att utnyttja dem. Emerging programmeringsmodeller, såsom CUDA och OpenCL, tvinga utvecklare att uttryckligen dela upp program i komponenter (kärnor) och tilldela dem till acceleratorer för att kunna använda dem effektivt. En accelerator är en processor med en annan ISA och mikro-arkitektur än huvudprocessorn. Dessa statiska partitioneringssystem är effektiva när man riktar in sig på ett system med endast en accelerator. De är dock inte robusta för förändringar i antalet acceleratorer eller prestandaegenskaper hos framtida generationer av acceleratorer. I tidigare arbete presenterade vi Harmony exekveringsmodell för beräkning av heterogena system med flera processorer och acceleratorer. I detta dokument utsträcker vi Harmony till att rikta system med flera acceleratorer med hjälp av kontrollspekulation för att avslöja parallellism. Vi hänvisar till denna teknik som Kernel Level Speculation (KLS). Vi hävdar att dynamiska parallelliseringstekniker som KLS är tillräckliga för att skala applikationer över flera acceleratorer baserat på intuitionen att det kommer att finnas färre distinkta acceleratorer än kärnor inom varje accelerator. I detta dokument använder vi en komplett prototyp av Harmony runtime som vi utvecklat för att utforska designbeslut och kompromisser i genomförandet av KLS. Vi visar att KLS förbättrar parallellismen i tillräcklig utsträckning samtidigt som vi behåller en sekventiell programmeringsmodell. Vi åstadkommer detta genom att demonstrera bra skalning av KLS på ett mycket heterogent system med tre olika acceleratorer och tio processorer.
Diamos och Yalamanchili REF föreslog en dynamisk parallelliseringsteknik, kallad kärnnivåspekulation, som använder kontrollspekulation för att avslöja parallellism.
Speculative execution on multi-GPU systems
{'venue': '2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)', 'journal': '2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)', 'mag_field_of_study': ['Computer Science']}