OP2 är ett "aktivt" biblioteksramverk för lösning av ostrukturerade meshbaserade tillämpningar. Den använder käll-till-källa översättning och sammanställning så att en enda ap complication code skriven med hjälp av OP2 API kan omvandlas till olika parallella implementationer för utförande på olika back-end hårdvaruplattformar. I detta dokument presenterar vi designen av det nuvarande OP2-biblioteket, och utvecklar sin förmåga att uppnå prestandaportabilitet, nära optimal prestanda, och skalning på moderna multi-core och många-core processorbaserade system. Ett viktigt inslag i detta arbete är OP2:s nyligen genomförda förlängning som underlättar utvecklingen och genomförandet av tillämpningar på en distribuerad minneskluster av GPU:er. Vi diskuterar de viktigaste designfrågorna genom att parallellisera ostrukturerade meshbaserade tillämpningar på heterogena plattformar. Dessa inkluderar hantering av databeroenden i att få tillgång till indictly referensdata, inverkan av ostrukturerade mesh datalayouter (array av strukturer vs. struktur av matriser) och konstruktion considerations för att generera kod för utförande på en kluster av GPUs. En representativ CFD-ansökan skriven med hjälp av OP2-ramverket används för att ge en kontrasterande bänkmärkning och prestandaanalysstudie på en rad olika system med flera kärnor/många kärnor. Dessa inkluderar multi-core CPUs från Intel (Westmere och Sandy Bridge) och AMD (Magny Cours), GPUs från NVIDIA (GTX560Ti, Tesla C2070), en distribuerad minne CPU kluster (Cray XE6) och en hyllad minne GPU kluster (Tesla C2050 GPUs med I finiBand). OP2:s designval utforskas med kvantitativa insikter i deras bidrag till prestandan. Vi visar att en ansökan som skrivs en gång på en hög nivå med hjälp av OP2 API kan vara lätt bärbar över ett brett spektrum av kontrasterande plattformar och kan uppnå nära optimal prestanda utan ingripande av domänprogrammeraren.
OP2-biblioteket REF ) är en DSL inbäddad i C och Fortran som gör det möjligt att uttrycka ostrukturerade meshalgoritmer på hög nivå och ger automatisk parallellisering och ett antal andra funktioner.
OP2: An active library framework for solving unstructured mesh-based applications on multi-core and many-core architectures
{'venue': '2012 Innovative Parallel Computing (InPar)', 'journal': '2012 Innovative Parallel Computing (InPar)', 'mag_field_of_study': ['Computer Science']}