Abstract Att utnyttja den fulla beräkningskraften hos nuvarande hierarkiska multiprocessormaskiner kräver en mycket noggrann fördelning av trådar och data mellan den underliggande icke-uniforma arkitekturen för att undvika straff för fjärrminnesåtkomst. Direktivbaserade programmeringsspråk, såsom OpenMP, kan i hög grad bidra till att utföra en sådan distribution genom att ge programmerare ett enkelt sätt att strukturera parallelliteten i sin tillämpning och överföra denna information till runtime-systemet. Vår körtid, som är baserad på en flernivås trådschemaläggare i kombination med en NUMA-medveten minneshanterare, omvandlar denna information till schemaläggningstips relaterade till problem med trådminnesaffinitet. Dessa tips möjliggör dynamisk lastfördelning styrd av applikationsstruktur och maskinvarutopologi, vilket bidrar till att uppnå prestandaportabilitet. Flera experiment visar att blandade lösningar (som migrerar både trådar och data) överträffar arbets-stjälande baserade balanseringsstrategier och nästa-touch-baserade datadistributionspolicyer. Dessa tekniker ger insikter om ytterligare optimeringar.
Borguedis m.fl. REF kombinerar problemet med trådschemaläggning med schemaläggningstips relaterade till problem med trådminnesaffinitet.
ForestGOMP: An Efficient OpenMP Environment for NUMA Architectures
{'venue': 'International Journal of Parallel Programming', 'journal': 'International Journal of Parallel Programming', 'mag_field_of_study': ['Computer Science']}