Record Details

Falcon : A Graph Manipulation Language for Distributed Heterogeneous Systems

Electronic Theses of Indian Institute of Science

View Archive Info
 
 
Field Value
 
Title Falcon : A Graph Manipulation Language for Distributed Heterogeneous Systems
 
Creator Cheramangalath, Unnikrishnan
 
Subject Sparse Coding
Graph Algorithms
Falcon
Graph Manipulation Language
Mesh Algorithms
Falcon Graph
Domain Specific Language (DSL)
R-MAT Graph
Large-Scale Graphs
Hypergraphs
Webgraphs
Computer Science
 
Description Graphs model relationships across real-world entities in web graphs, social network graphs, and road network graphs. Graph algorithms analyze and transform a graph to discover graph properties or to apply a computation. For instance, a pagerank algorithm computes a rank for each page in a webgraph, and a community detection algorithm discovers likely communities in a social network, while a shortest path algorithm computes the quickest way to reach a place from another, in a road network. In Domains such as social information systems, the number of edges can be in billions or trillions. Such large graphs are processed on distributed computer systems or clusters.
Graph algorithms can be executed on multi-core CPUs, GPUs with thousands of cores, multi-GPU devices, and CPU+GPU clusters, depending on the size of the graph object. While programming such algorithms on heterogeneous targets, a programmer is required to deal with parallelism and and also manage explicit data communication between distributed devices. This implies that a programmer is required to learn CUDA, OpenMP, MPI, etc., and also the details of the hardware architecture. Such codes are error prone and di cult to debug. A Domain Speci c Language (DSL) which hides all the hardware details and lets the programmer concentrate only the algorithmic logic will be very useful.
With this as the research goal, Falcon, graph DSL and its compiler have been developed. Falcon programs are explicitly parallel and Falcon hides all the hardware details from the programmer. Large graphs that do not t into the memory of a single device are automatically partitioned by the Falcon compiler. Another feature of Falcon is that it supports mutation of graph objects and thus enables programming dynamic graph algorithms. The Falcon compiler converts a single DSL code to heterogeneous targets such as multi-core CPUs, GPUs, multi-GPU devices, and CPU+GPU clusters. Compiled codes of Falcon match or outperform state-of-the-art graph frameworks for di erent target platforms and benchmarks.
 
Contributor Srikant, Y N
 
Date 2018-08-20T07:25:01Z
2018-08-20T07:25:01Z
2018-08-20
2017
 
Type Thesis
 
Identifier http://etd.iisc.ernet.in/2005/3978
http://etd.iisc.ernet.in/abstracts/4866/G28548-Abs.pdf
 
Language en_US
 
Relation G28548