Att förstå varför prestandan hos ett flertrådigt program inte förbättras linjärt med antalet kärnor i en delad minnesnod befolkad med en eller flera flerkärniga processorer är ett problem av växande praktisk betydelse. Detta dokument ger tre bidrag till prestandaanalys av multitrådade program. För det första beskriver vi hur man mäter och tillskriver parallell sysslolöshet, nämligen där trådar är förhalade och oförmögna att arbeta. Denna teknik gäller i stort för programmeringsmodeller som sträcker sig från explicit gängning (t.ex. Pthreads) till modeller på högre nivå såsom Cilk och OpenMP. För det andra beskriver vi hur man mäter och tillskriver parallella overhead-när en tråd utför diverse andra arbeten än att utföra användarens beräkning. Genom att använda en kombination av kompilatorstöd och post-mortem analys, vi ådrar oss ingen mätningskostnad utöver normal profilering för att plocka denna information. Med hjälp av tomgång och overhead-mått kan man identifiera områden i en applikation där konvergensen bör ökas (för att minska tomgång), minska (för att minska overhead), eller där den nuvarande parallelliseringen är hopplös (där tomgång och overhead är både hög). För det tredje beskriver vi hur man mäter och tillskriver godtyckliga prestandamått för multitrådade programmeringsmodeller på hög nivå, såsom Cilk. Detta kräver att överbrygga gapet mellan uttrycket för logisk konvergens i program och dess förverkligande i kör-tid som det är adaptivt partitionerad och schemalagd på en pool av trådar. Vi har tagit fram dessa idéer i samband med Rice Universitys HPCTOOLKIT-prestandaverktyg. Vi beskriver vår strategi, genomförande, och erfarenheter tillämpa denna metod för att mäta och attributera arbete, sysslolöshet, och overhead i utföranden av Cilk program.
Tallent m.fl. I REF föreslås metoder för att mäta och tillskriva parallell overksamhet och parallella omkostnader för multitrådade parallella tillämpningar.
Effective performance measurement and analysis of multithreaded applications
{'venue': "PPoPP '09", 'journal': None, 'mag_field_of_study': ['Computer Science']}