Abstract-X10 är ett nytt objektorienterat PGAS (Partitioned Global Address Space) programmeringsspråk med stöd för distribuerad asynkron dynamisk parallellism som går längre än förbi SPMD-meddelandena MPI och SPMD PGAS-modeller som UPC och Co-Array Fortran. Konvergenskonstruktionerna i X10 gör det möjligt att uttrycka komplexa beräknings- och kommunikationsstrukturer med högre produktivitet än andra distribuerade programmeringsmodeller. Denna produktivitet kommer dock ofta till priset av höga prestanda overhead när språket används i sin fulla allmängiltighet. Detta papper introducerar hög nivå kompilator optimeringar och transformationer för att minska kommunikation och synkronisering overheads i distribuerade minnesimplementationer av X10-program. Specifikt fokuserar vi på lokala optimeringar som skalarersättning och uppgiftslokalisering, kombinerat med stöd för omvandlingar såsom loopdistribution, skalarexpansion, loop tiling och loopdelning. Vi har slutfört en prototypimplementering av dessa högnivåoptimeringar och utfört en prestandautvärdering som visar betydande förbättringar i prestanda, skalbarhet, kommunikationsvolym och antal uppgifter. Vi utvärderade kommunikationsoptimeringarna på tre plattformar: ett 128-node BlueGene/P-kluster, ett 32-node Nehalem-kluster och ett 16-node Power7-kluster. På BlueGene/P kluster, observerade vi en maximal prestandaförbättring på 31,46× i förhållande till det ooptimerade fallet (för MolDyn riktmärke). På Nehalem-klustret observerade vi en maximal prestandaförbättring på 3,01× (för NQueens-riktmärket) och på Power7-klustret, vi observerade en maximal prestandaförbättring av 2.7× (för MolDyn-riktmärket). Dessutom fanns det inget fall där den optimerade koden var långsammare än det ooptimerade fallet. Vi tror också att de optimeringar som presenteras i detta dokument kommer att vara nödvändiga för alla högproduktiva PGAS-språk baserade på moderna objektorienterade principer, som är utformade för utförande på framtida Extreme Scale-system som sätter en hög premie på lokal förbättring för prestanda och energieffektivitet.
Förutom Scalar-replacement och program transformation tekniker, Barik et al. REF presenterar också andra kompilatoroptimeringar för att minska kommunikations- och synkroniserings omkostnader: aktivitetslokalisering, objektdelning för flera objekt, replikering av matriser över olika platser, distribution av loopar för att specialisera lokala åtkomster, och så vidare.
Communication Optimizations for Distributed-Memory X10 Programs
{'venue': '2011 IEEE International Parallel & Distributed Processing Symposium', 'journal': '2011 IEEE International Parallel & Distributed Processing Symposium', 'mag_field_of_study': ['Computer Science']}