Header menu link for other important links
X
Falcon: A graph manipulation language for heterogeneous systems
Published in Association for Computing Machinery
2015
Volume: 12
   
Issue: 4
Abstract
Graph algorithms have been shown to possess enough parallelism to keep several computing resources Busy - even hundreds of cores on a GPU. Unfortunately, tuning their implementation for efficient execution on a particular hardware configuration of heterogeneous systems consisting of multicore CPUs and GPUs is challenging, time consuming, and error prone. To address these issues,we propose a domain-specific language (DSL), Falcon, for implementing graph algorithms that (i) abstracts the hardware, (ii) provides constructs to write explicitly parallel programs at a higher level, and (iii) can work with general algorithms that may change the graph structure (morph algorithms). We illustrate the usage of our DSL to implement local computation algorithms (that do not change the graph structure) and morph algorithms such as Delaunay mesh refinement, survey propagation, and dynamic SSSP on GPU and multicore CPUs. Using a set of benchmark graphs, we illustrate that the generated code performs close to the state-of-the-art hand-tuned implementations. © 2015 ACM.
About the journal
JournalData powered by TypesetACM Transactions on Architecture and Code Optimization
PublisherData powered by TypesetAssociation for Computing Machinery
ISSN15443566
Open AccessYes
Concepts (18)
  •  related image
    Application programming interfaces (api)
  •  related image
    Computational linguistics
  •  related image
    Computer hardware
  •  related image
    Computer programming languages
  •  related image
    Graphic methods
  •  related image
    Graphical user interfaces
  •  related image
    Hardware
  •  related image
    Problem oriented languages
  •  related image
    Program processors
  •  related image
    Reconfigurable hardware
  •  related image
    CUDA
  •  related image
    DOMAIN SPECIFIC LANGUAGES
  •  related image
    GPU
  •  related image
    GRAPH MANIPULATION
  •  related image
    LOCAL COMPUTATION
  •  related image
    MULTI-CORE CPUS
  •  related image
    Openmp
  •  related image
    Algorithms