Datorsystem är i allt högre grad beroende av heterogenitet för att uppnå bättre prestanda, skalbarhet och energieffektivitet. Eftersom heterogena system vanligtvis omfattar flera utförande sammanhang med olika programmering abstraktioner och körtider, är programmering dem fortfarande extremt utmanande. Dandelion är ett system som är utformat för att ta itu med denna programmerbarhetsutmaning för dataparallellapplikationer. Dandelion tillhandahåller en enhetlig programmeringsmodell för heterogena system som spänner över olika utförande kontexter inklusive CPUs, GPUs, FPGAs, och molnet. Det antar.NET LINQ (språkIntegrerad fråga) metod, integrera data-parallell operatörer i allmänna ändamål programmeringsspråk som C# och F#. Det ger därför en expressiv datamodell och integration i modersmålet för användardefinierade funktioner, vilket gör det möjligt för programmerare att skriva applikationer med hjälp av standard språk på hög nivå och utvecklingsverktyg. Dandelion distribuerar automatiskt och transparent data-parallell delar av ett program till tillgängliga datorresurser, inklusive beräkna kluster för distribuerad körning och CPU och GPU-kärnor av enskilda noder för parallell körning. För att möjliggöra automatisk körning av.NET-kod på GPU:er, korskompilerar maskrosor.NET-kod till CUDA-kärnor och använder PTask-runtime [85] för att hantera GPU-utförande. Detta dokument diskuterar utformningen och genomförandet av Dandelion, med fokus på distribuerad CPU och GPU genomförande. Vi utvärderar systemet med hjälp av en mängd olika arbetsbelastningar.
Dandelion REF erbjuder LINQ-baserad programmeringsmodell för CPU/GPU-system, utökad med andra konstruktioner, såsom loopar.
Dandelion: a compiler and runtime for heterogeneous systems
{'venue': "SOSP '13", 'journal': None, 'mag_field_of_study': ['Computer Science']}