Högpresterande grafanalys är avgörande för en lång lista över applikationsdomäner. Under de senaste åren har den snabba utvecklingen av många huvudprocessorer, särskilt grafiska bearbetningsenheter (GPU), väckt ett brett intresse för att utveckla högpresterande parallella grafprogram på dessa arkitekturer. Den SIMT-arkitektur som används i GPU:er ställer dock särskilda krav på både utformning och genomförande av algoritmer och datastrukturer, vilket gör utvecklingen av sådana program svår och tidskrävande. Vi presenterar MapGraph, en högpresterande parallell graf programmering ram som levererar upp till 3 miljarder Traversed Edges Per Second (TEPS) på en GPU. MapGraph ger en hög nivå abstraktion som gör det enkelt att skriva grafprogram och få bra parallella speedups på GPUs. För att leverera hög prestanda, MapGraph dynamiskt väljer bland olika schemaläggningsstrategier beroende på storleken på gränsen och storleken på adjacency listor för hörnen i gränsen. Dessutom används en struktur av Arrays (SOA) mönster för att säkerställa sammanslagen minnesåtkomst. Våra experiment visar att, för många grafanalysalgoritmer, en implementering, med vår abstraktion, är upp till två storleksordningar snabbare än en parallell CPU genomförande och är jämförbar med state-of-the-art, manuellt optimerade GPU implementationer. Med vår abstraktion kan dessutom ny grafanalys utvecklas med relativt lite ansträngning.
MapGraph REF ger en hög nivå API för att skriva högpresterande grafanalys för en enda GPU.
MapGraph: A High Level API for Fast Development of High Performance Graph Analytics on GPUs
{'venue': "GRADES'14", 'journal': None, 'mag_field_of_study': ['Computer Science']}