Multicore multiprocessorer använder en Non Uniform Memory Architecture (NUMA) för att förbättra skalbarheten. NUMA inför dock prestandapåföljder på grund av fjärråtkomst till minne. Utan att effektivt hantera datalayout och trådmappning till kärnor, vetenskapliga applikationer kan lida prestandaförlust, även om de är optimerade för NUMA. I detta dokument presenterar vi algoritmer och ett runtime-system som optimerar utförandet av OpenMP-program på NUMA-arkitekturer. Genom att samla in information från maskinvaruräknare styr körtidens system trådplacering och minskar prestandapåföljder genom att minimera den kritiska vägen för OpenMP-parallella regioner. Runtime-systemet använder en skalbar algoritm som härleder placeringsbeslut med försumbara omkostnader. Vi utvärderar våra algoritmer och körtidssystemet med fyra NPB-applikationer implementerade i OpenMP. I genomsnitt uppnår algoritmerna mellan 8,13 % och 25,68 % prestandaförbättring, jämfört med standardprogrammet för placering av Linux-trådar. Algoritmerna missar den optimala trådplaceringen i endast 8,9% av fallen.
Su m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m. REF presenterar algoritmer och ett körtidssystem som optimerar utförandet av Open Multi-Processing (OpenMP) program genom trådplacering för att minimera den kritiska vägen för OpenMP parallella regioner på NUMA arkitekturer.
Critical path-based thread placement for NUMA systems
{'venue': 'PERV', 'journal': None, 'mag_field_of_study': ['Computer Science']}