Det senaste tillägget av uppgift parallellism till OpenMP delade minne API gör det möjligt för programmerare att uttrycka samstämmighet på en hög grad av abstraktion och lägger bördan av schemaläggning parallell körning på OpenMP körtidssystemet. Detta är en välkommen utveckling för vetenskaplig databehandling som superdatorn noder växa "fatter" med multicore och mångacore processorer. Men effektiv schemaläggning av uppgifter på moderna multi-socket delade minnessystem kräver noggrant övervägande av en allt mer komplex minneshierarki, inklusive delade caches och NUMA egenskaper. I detta dokument föreslår vi en hierarkisk planeringsstrategi som utnyttjar olika metoder på olika nivåer i hierarkin. Genom att låta en tråd stjäla arbete för alla trådar i ett enda chip som delar en cache, begränsar vår schemaläggare antalet dyra fjärrstölder. För kärnor på samma chip möjliggör en delad LIFO-kö utnyttjande av cachelokalitet mellan syskonuppgifter samt mellan en föräldrauppgift och dess nyskapade barnuppgifter. Vi förlängde Qthreads-gängbiblioteket med öppen källkod för att implementera vår schemaläggare och accepterade OpenMP-program via ROSE-kompilatorn. Vi presenterar också en omfattande prestandastudie av olika OpenMP aktivitet parallella riktmärken, jämföra sju olika uppgifter parallell kör schemaläggare implementationer på nuvarande generation multi-socket multicore system: vår hierarkiska arbete stjäla schemaläggare, en fullt distribuerad arbete stjäla schemaläggare, en centraliserad schemaläggare, och LIFO och FIFO versioner av den ursprungliga Qthreads fullt distribuerade schemaläggaren. Dessutom jämför vi våra resultat mot OpenMP-implementationer från Intel och GCC. Hierarkisk schemaläggning i Qthreads är konkurrenskraftig på alla riktmärken. På flera riktmärken, hierarkisk schemaläggning i Qthreads visar speedup och absolut prestanda överlägsen både Intel och GCC OpenMP kör tidssystem.
Detta beslut träder i kraft dagen efter det att det har offentliggjorts i Europeiska unionens officiella tidning. I REF föreslås en hierarkisk algoritm för att stjäla arbete för att förbättra lokaliseringen.
Scheduling task parallelism on multi-socket multicore systems
{'venue': "ROSS '11", 'journal': None, 'mag_field_of_study': ['Computer Science']}