Abstrakt. Applikationsutveckling för moderna högpresterande system med Graphics Processing Units (GPU) är för närvarande beroende av lågnivåprogrammeringsmetoder som CUDA och OpenCL, vilket leder till komplexa, långa och felbenägna program. I detta dokument presenterar vi SkelCL -en högnivåprogrammeringsmetod för system med flera GPU och dess implementering som ett bibliotek ovanpå OpenCL. SkelCL ger tre huvudförbättringar till OpenCL-standarden: 1) beräkningar uttrycks bekvämt med hjälp av parallella algoritmiska mönster (skaletoner); 2) minneshantering förenklas med hjälp av parallella containerdatatyper (vektorer och matriser); 3) en automatisk datafördelningsmekanism möjliggör implicita datarörelser mellan GPU:er och säkerställer skalbarhet vid användning av flera GPU:er. Vi visar hur SkelCL används för att implementera parallella applikationer på en- och tvådimensionella data. Vi rapporterar experimentella resultat för att utvärdera vår strategi när det gäller programplanering och prestanda.
I SkelCL REF, ett högnivåskelettbibliotek byggt ovanpå OpenCL-koden, används containerdatatyper för att automatiskt optimera datarörelser över GPU:er.