Sammanfattning Den kritiska vägen för en parallell tillämpning är ett grundläggande mått för dess utförande. Den representerar den längsta körsekvensen utan väntetider och dikterar därmed den totala körtiden: att lägga till den kritiska banan kommer att öka körtiden direkt, samtidigt som förkorta eller optimera delar av den kritiska banan kommer att resultera i en minskning av den totala körtiden. Å andra sidan, att ändra genomförandetiden för programsektioner inte på den kritiska vägen kommer inte att påverka programmets körtid. Att känna till den kritiska vägen gör det möjligt för användaren att karakterisera programmet och dess kommunikationsbeteende, utforska skillnader i utförandet beteende med avseende på skalning och parameterförändringar, och identifiera potentiella flaskhalsar eller prestandaproblem. Det är också en förutsättning för att hantera skalbarhetsproblem i prestandaanalys och optimering. Det ökande antalet noder i moderna kluster, ofta nå tusentals, gör det omöjligt att undersöka, manuellt analysera, eller ofta bara visualisera prestandadata som samlats in från alla noder. Att känna till den kritiska vägen gör det dock möjligt för oss att begränsa optimeringsarbetet till de relevanta delarna av utförandet. I detta dokument presenterar vi en hybrid online/post-mortem strategi för att identifiera, isolera och visualisera den kritiska vägen för MPI-tillämpningar. Under online-komponenten samlar vi in information om varje processor lokalt, för att inte lägga till ytterligare kommunikationskrav. Efter avslutandet av programmet kombinerar vi de enskilda lokala resultaten för global analys. För att genomföra vår strategi, vi abstraherar programmet som en exekvering graf där alla MPI kommunikationsåtgärder visas som noder. Riktade kanter representerar både sekventiell körning inom en processor samt meddelandehändelser mellan processorer. Den kritiska sökvägen är sedan en delmängd av den fullständiga körkurvan. För att extrahera den bygger vi relevanta undergrupper dynamiskt vid drift med hjälp av ett MPI-omslagsbibliotek som spårar all MPI-kommunikationsverksamhet. Vid varje mottagande operation identifierar vi exekveringskurvans kanter som inte får vänta och som därför potentiellt är en del av den kritiska vägen; vi lagrar dem som en del av en lokal subgraf. Efter avslutandet av programmet, vi slå samman dessa subgrafer, identifiera vilka av de potentiella kanter som lagras i de lokala graferna är faktiskt en del av den avslutade globala kritiska vägen, beskär de återstående noderna, och exportera för att resultera i ett portabelt grafformat för visualisering och vidare bearbetning. Denna graf visar alla avsnitt i programmets utförande som bidrar till den kritiska vägen samt alla kommunikationshändelser som orsakar den kritiska vägen till transitering mellan processorer. Grafformuläret har den ytterligare fördelen, i motsats till profileringsdata eller tabular representationer, att det behåller en stor del av den strukturella informationen från det ursprungliga genomförandet av ansökan och därmed underlättar ytterligare analyssteg på hög nivå.
Schulz REF beskriver tekniker för att extrahera den kritiska vägen från ett program för meddelandepassering i form av en graf, som sedan kan användas för ytterligare analys efter slakt.
Extracting Critical Path Graphs from MPI Applications
{'venue': '2005 IEEE International Conference on Cluster Computing', 'journal': '2005 IEEE International Conference on Cluster Computing', 'mag_field_of_study': ['Computer Science']}