Practical Parallel Hypergraph Algorithms

Total Page:16

File Type:pdf, Size:1020Kb

Practical Parallel Hypergraph Algorithms Practical Parallel Hypergraph Algorithms Julian Shun [email protected] MIT CSAIL Abstract v0 While there has been significant work on parallel graph pro- e0 cessing, there has been very surprisingly little work on high- v0 v1 v1 performance hypergraph processing. This paper presents a e collection of efficient parallel algorithms for hypergraph pro- 1 v2 cessing, including algorithms for computing hypertrees, hy- v v 2 3 e perpaths, betweenness centrality, maximal independent sets, 2 v k-core decomposition, connected components, PageRank, 3 and single-source shortest paths. For these problems, we ei- (a) Hypergraph (b) Bipartite representation ther provide new parallel algorithms or more efficient imple- mentations than prior work. Furthermore, our algorithms are Figure 1. An example hypergraph representing the groups theoretically-efficient in terms of work and depth. To imple- fv0;v1;v2g, fv1;v2;v3g, and fv0;v3g, and its bipartite repre- ment our algorithms, we extend the Ligra graph processing sentation. framework to support hypergraphs, and our implementations benefit from graph optimizations including switching between improved compared to using a graph representation. Unfor- sparse and dense traversals based on the frontier size, edge- tunately, there is been little research on parallel hypergraph aware parallelization, using buckets to prioritize processing processing. of vertices, and compression. Our experiments on a 72-core The main contribution of this paper is a suite of efficient machine and show that our algorithms obtain excellent paral- parallel hypergraph algorithms, including algorithms for hy- lel speedups, and are significantly faster than algorithms in pertrees, hyperpaths, betweenness centrality, maximal inde- existing hypergraph processing frameworks. pendent sets, k-core decomposition, connectivity, PageRank, and single-source shortest paths. For these problems, we pro- 1 Introduction vide either new parallel hypergraph algorithms (e.g., between- A graph contains vertices and edges, where a vertex represents ness centrality and k-core decomposition) or more efficient an entity of interest, and an edge between two vertices repre- implementations than prior work. Additionally, we show that sents an interaction between the two corresponding entities. most of our algorithms are theoretically-efficient in terms of There has been significant work on developing algorithms their work and depth complexities. and programming frameworks for efficient graph processing We observe that our parallel hypergraph algorithms can due to their applications in various domains, such as social be implemented efficiently by taking advantage of graph pro- network and Web analysis, cyber-security, and scientific com- cessing machinery. To implement our parallel hypergraph putations. One limitation of modeling data using graphs is that algorithms, we made relatively simple extensions to the Ligra only binary relationships can be expressed, and can lead to graph processing framework [75] and we call the extended loss of information from the original data. Hypergraphs are a framework Ligra-H. As with Ligra, Ligra-H is well-suited generalization of graphs where the relationships, represented for frontier-based algorithms, where small subsets of ele- as hyperedges, can contain an arbitrary number of vertices. ments (referred to as frontiers) are processed on each iteration. Hyperedges correspond to group relationships among ver- We use a bipartite graph representation to store hypergraphs, tices (e.g., a community in a social network). An example of and use Ligra’s data structures for representing subsets of a hypergraph is shown in Figure 1a. Hypergraphs have been vertices and hyperedges as well as operators for mapping shown to enable richer analysis of structured data in various application-specific functions over these elements. The oper- applications, such as protein network analysis [71], machine ators for processing subsets of vertices and hyperedges are learning [94], and image segmentation [12, 23]. For example, theoretically-efficient, which enables us to implement paral- Ducournau and Bretto [23] show that by representing pixels lel hypergraph algorithms with strong theoretical guarantees. in an image as vertices and groups of nearby and similar pix- Ligra-H inherits from Ligra various optimizations developed els as hyperedges, the quality of image segmentation can be for graphs, including switching between different traversal strategies based on the size of the frontier, edge-aware paral- PL’18, January 01–03, 2018, New York, NY, USA lelization, bucketing for prioritizing the processing of vertices, 2018. and compression. 1 PL’18, January 01–03, 2018, New York, NY, USA Julian Shun Our experiments on a variety of real-world and synthetic on every iteration, even if few vertices/hyperedges are active, hypergraphs show that our algorithms implemented in Ligra- which makes them inefficient for frontier-based hypergraph H achieve good parallel speedup and scalability with respect algorithms. The Chapel HyperGraph Library [39] is a library to input size. On 72 cores with hyper-threading, we achieve for generating synthetic hypergraphs. However, it does not a parallel speedup of between 8.5–76.5x. Compared to Hy- implement any hypergraph algorithms, and currently does not perX [41] and MESH [36], the only existing frameworks for have a high-level programming abstraction for doing so. hypergraph processing, our results are significantly faster. For Hypergraphs are useful in modeling communication costs example, one iteration of PageRank on the Orkut commu- in parallel machines, and partitioning can be used to minimize nity hypergraph with 2.3 million vertices and 15.3 million communication. There has been significant work on both hyperedges [54] takes 0.083s on 72 cores and 3.31s on one sequential and parallel hypergraph partitioning algorithms thread in Ligra-H, while taking 1 minute on eight 12-core ma- (see, e.g., [14, 15, 20, 44, 47, 49, 83]). While we do not chines using MESH [36] and 10s using eight 4-core machines consider the problem of hypergraph partitioning in this paper, in HyperX [41]. Certain hypergraph algorithms (hypertrees, these techniques could potentially be used to improve the connected components, and single-source shortest paths) can locality of our algorithms. be implemented correctly by expanding each hyperedge into Algorithms have been designed for a variety of problems a clique among its member vertices and running the corre- on hypergraphs, including random walks [23], shortest hy- sponding graph algorithm on the resulting graph. We also perpaths [1, 65], betweenness centrality [69], hypertrees [26], compare with this alternative approach by using the original connectivity [26], maximal independent sets [3, 7, 43, 45], Ligra framework to process the clique-expanded graphs, and and k-core decomposition [40]. However, there have been no show the space usage and performance is significantly worse efficient parallel implementations of hypergraph algorithms, than that of Ligra-H (2.8x–30.6x slower while using 235x with the exception of [40], which provides a GPU implemen- more space on the Friendster hypergraph). tation for a special case of k-core decomposition. Our work shows that high-performance hypergraph pro- 3 Preliminaries cessing can be done using just a single multicore machine, on which we can process all existing publicly-available hyper- Hypergraph Notation. We denote an unweighted hyper- ¹ º graphs. Prior work has shown that graph processing can be graph by H V ; E , where V is the set of vertices and E is done efficiently on just a single multicore machine (e.g.,[21, the set of hyperedges. A weighted hypergraph is denoted by ¹ º 22, 62, 64, 75, 81, 90, 95]), and this work extends the obser- H = V ; E;w , where w is a function that maps a hyperedge vation to hypergraphs. To benefit the community, our source to a real value (its weight). The number of vertices in a hyper- j j j j code will be made publicly available. graph is nv = V , and the number of hyperedges is ne = E . Vertices are assumed to be labeled from 0 to n − 1, and hy- 2 Related Work v peredges from 0 to ne −1. For undirected hypergraphs, we use Graph Processing. There has been significant work on devel- deg¹eº to denote the number of vertices a hyperedge e 2 E con- oping graph libraries and frameworks to reduce programming tains (i.e., its cardinality), and deg¹vº to denote the number of effort by providing high-level operators that capture common hyperedges that a vertex v 2 V belongs to. In directed hyper- algorithm design patterns (e.g., [16, 18, 19, 24, 28–30, 33–35, graphs, hyperedges contain incoming vertices and outgoing 37, 42, 46, 51, 55, 56, 58–60, 63, 64, 66–68, 70, 72, 75, 78– vertices. For a hyperedge e 2 E, we use N −¹eº and N +¹eº to 81, 85, 88, 90, 93, 95], among many others; see [61, 73, 87] denote its incoming vertices and outgoing vertices, respec- for surveys). Many of these frameworks can process large tively, and deg−¹eº = jN −¹eºj and deg+¹eº = jN +¹eºj. We use graphs efficiently, but none of them directly support hyper- N −¹vº and N +¹vº to denote the hyperedges that v 2 V is an graph processing. incoming vertex and outgoing vertex for, respectively, and − Hypergraph Processing. HyperX [41] and MESH [36] are deg ¹vº = jN −¹vºj and deg+¹vº = jN +¹vºj. We denote the Í − + distributed systems for hypergraph processing built on top of size jH j of a hypergraph to be nv + e 2E ¹deg ¹eº + deg ¹eºº, Spark [89]. Algorithms are written using hyperedge programs i.e., the number of vertices plus the sum of the hyperedge and vertex programs that are iteratively applied on hyperedges cardinalities. and vertices, respectively. HyperX stores hypergraphs using Computational Model. We use the work-depth model [38] fixed-length tuples containing vertex and hyperedge identi- to analyze the theoretical efficiency of algorithms. The work fiers, and MESH stores the hypergraph as a bipartite graph.
Recommended publications
  • Practical Parallel Hypergraph Algorithms
    Practical Parallel Hypergraph Algorithms Julian Shun [email protected] MIT CSAIL Abstract v While there has been signicant work on parallel graph pro- 0 cessing, there has been very surprisingly little work on high- e0 performance hypergraph processing. This paper presents v0 v1 v1 a collection of ecient parallel algorithms for hypergraph processing, including algorithms for betweenness central- e1 ity, maximal independent set, k-core decomposition, hyper- v2 trees, hyperpaths, connected components, PageRank, and v2 v3 e single-source shortest paths. For these problems, we either 2 provide new parallel algorithms or more ecient implemen- v3 tations than prior work. Furthermore, our algorithms are theoretically-ecient in terms of work and depth. To imple- (a) Hypergraph (b) Bipartite representation ment our algorithms, we extend the Ligra graph processing Figure 1. An example hypergraph representing the groups framework to support hypergraphs, and our implementa- , , , , , , and , , and its bipartite repre- { 0 1 2} { 1 2 3} { 0 3} tions benet from graph optimizations including switching sentation. between sparse and dense traversals based on the frontier size, edge-aware parallelization, using buckets to prioritize processing of vertices, and compression. Our experiments represented as hyperedges, can contain an arbitrary number on a 72-core machine and show that our algorithms obtain of vertices. Hyperedges correspond to group relationships excellent parallel speedups, and are signicantly faster than among vertices (e.g., a community in a social network). An algorithms in existing hypergraph processing frameworks. example of a hypergraph is shown in Figure 1a. CCS Concepts • Computing methodologies → Paral- Hypergraphs have been shown to enable richer analy- lel algorithms; Shared memory algorithms.
    [Show full text]
  • Adjacency Matrix
    CSE 373 Graphs 3: Implementation reading: Weiss Ch. 9 slides created by Marty Stepp http://www.cs.washington.edu/373/ © University of Washington, all rights reserved. 1 Implementing a graph • If we wanted to program an actual data structure to represent a graph, what information would we need to store? for each vertex? for each edge? 1 2 3 • What kinds of questions would we want to be able to answer quickly: 4 5 6 about a vertex? about edges / neighbors? 7 about paths? about what edges exist in the graph? • We'll explore three common graph implementation strategies: edge list , adjacency list , adjacency matrix 2 Edge list • edge list : An unordered list of all edges in the graph. an array, array list, or linked list • advantages : 1 2 3 easy to loop/iterate over all edges 4 5 6 • disadvantages : hard to quickly tell if an edge 7 exists from vertex A to B hard to quickly find the degree of a vertex (how many edges touch it) 0 1 2 3 4 56 7 8 (1, 2) (1, 4) (1, 7) (2, 3) 2, 5) (3, 6)(4, 7) (5, 6) (6, 7) 3 Graph operations • Using an edge list, how would you find: all neighbors of a given vertex? the degree of a given vertex? whether there is an edge from A to B? 1 2 3 whether there are any loops (self-edges)? • What is the Big-Oh of each operation? 4 5 6 7 0 1 2 3 4 56 7 8 (1, 2) (1, 4) (1, 7) (2, 3) 2, 5) (3, 6)(4, 7) (5, 6) (6, 7) 4 Adjacency matrix • adjacency matrix : An N × N matrix where: the non-diagonal entry a[i,j] is the number of edges joining vertex i and vertex j (or the weight of the edge joining vertex i and vertex j).
    [Show full text]
  • Introduction to Graphs
    Multidimensional Arrays & Graphs CMSC 420: Lecture 3 Mini-Review • Abstract Data Types: • Implementations: • List • Linked Lists • Stack • Circularly linked lists • Queue • Doubly linked lists • Deque • XOR Doubly linked lists • Dictionary • Ring buffers • Set • Double stacks • Bit vectors Techniques: Sentinels, Zig-zag scan, link inversion, bit twiddling, self- organizing lists, constant-time initialization Constant-Time Initialization • Design problem: - Suppose you have a long array, most values are 0. - Want constant time access and update - Have as much space as you need. • Create a big array: - a = new int[LARGE_N]; - Too slow: for(i=0; i < LARGE_N; i++) a[i] = 0 • Want to somehow implicitly initialize all values to 0 in constant time... Constant-Time Initialization means unchanged 1 2 6 12 13 Data[] = • Access(i): if (0≤ When[i] < count and Where[When[i]] == i) return Where[] = 6 13 12 Count = 3 Count holds # of elements changed Where holds indices of the changed elements. When[] = 1 3 2 When maps from index i to the time step when item i was first changed. Access(i): if 0 ≤ When[i] < Count and Where[When[i]] == i: return Data[i] else: return DEFAULT Multidimensional Arrays • Often it’s more natural to index data items by keys that have several dimensions. E.g.: • (longitude, latitude) • (row, column) of a matrix • (x,y,z) point in 3d space • Aside: why is a plane “2-dimensional”? Row-major vs. Column-major order • 2-dimensional arrays can be mapped to linear memory in two ways: 1 2 3 4 5 1 2 3 4 5 1 1 2 3 4 5 1 1 5 9 13 17 2 6 7 8 9 10 2 2 6 10 14 18 3 11 12 13 14 15 3 3 7 11 15 19 4 16 17 18 19 20 4 4 8 12 16 20 Row-major order Column-major order Addr(i,j) = Base + 5(i-1) + (j-1) Addr(i,j) = Base + (i-1) + 4(j-1) Row-major vs.
    [Show full text]
  • Practical Forward Secure Signatures Using Minimal Security Assumptions
    Practical Forward Secure Signatures using Minimal Security Assumptions Vom Fachbereich Informatik der Technischen Universit¨atDarmstadt genehmigte Dissertation zur Erlangung des Grades Doktor rerum naturalium (Dr. rer. nat.) von Dipl.-Inform. Andreas H¨ulsing geboren in Karlsruhe. Referenten: Prof. Dr. Johannes Buchmann Prof. Dr. Tanja Lange Tag der Einreichung: 07. August 2013 Tag der m¨undlichen Pr¨ufung: 23. September 2013 Hochschulkennziffer: D 17 Darmstadt 2013 List of Publications [1] Johannes Buchmann, Erik Dahmen, Sarah Ereth, Andreas H¨ulsing,and Markus R¨uckert. On the security of the Winternitz one-time signature scheme. In A. Ni- taj and D. Pointcheval, editors, Africacrypt 2011, volume 6737 of Lecture Notes in Computer Science, pages 363{378. Springer Berlin / Heidelberg, 2011. Cited on page 17. [2] Johannes Buchmann, Erik Dahmen, and Andreas H¨ulsing.XMSS - a practical forward secure signature scheme based on minimal security assumptions. In Bo- Yin Yang, editor, Post-Quantum Cryptography, volume 7071 of Lecture Notes in Computer Science, pages 117{129. Springer Berlin / Heidelberg, 2011. Cited on pages 41, 73, and 81. [3] Andreas H¨ulsing,Albrecht Petzoldt, Michael Schneider, and Sidi Mohamed El Yousfi Alaoui. Postquantum Signaturverfahren Heute. In Ulrich Waldmann, editor, 22. SIT-Smartcard Workshop 2012, IHK Darmstadt, Feb 2012. Fraun- hofer Verlag Stuttgart. [4] Andreas H¨ulsing,Christoph Busold, and Johannes Buchmann. Forward secure signatures on smart cards. In Lars R. Knudsen and Huapeng Wu, editors, Se- lected Areas in Cryptography, volume 7707 of Lecture Notes in Computer Science, pages 66{80. Springer Berlin Heidelberg, 2013. Cited on pages 63, 73, and 81. [5] Johannes Braun, Andreas H¨ulsing,Alex Wiesmaier, Martin A.G.
    [Show full text]
  • 9 the Graph Data Model
    CHAPTER 9 ✦ ✦ ✦ ✦ The Graph Data Model A graph is, in a sense, nothing more than a binary relation. However, it has a powerful visualization as a set of points (called nodes) connected by lines (called edges) or by arrows (called arcs). In this regard, the graph is a generalization of the tree data model that we studied in Chapter 5. Like trees, graphs come in several forms: directed/undirected, and labeled/unlabeled. Also like trees, graphs are useful in a wide spectrum of problems such as com- puting distances, finding circularities in relationships, and determining connectiv- ities. We have already seen graphs used to represent the structure of programs in Chapter 2. Graphs were used in Chapter 7 to represent binary relations and to illustrate certain properties of relations, like commutativity. We shall see graphs used to represent automata in Chapter 10 and to represent electronic circuits in Chapter 13. Several other important applications of graphs are discussed in this chapter. ✦ ✦ ✦ ✦ 9.1 What This Chapter Is About The main topics of this chapter are ✦ The definitions concerning directed and undirected graphs (Sections 9.2 and 9.10). ✦ The two principal data structures for representing graphs: adjacency lists and adjacency matrices (Section 9.3). ✦ An algorithm and data structure for finding the connected components of an undirected graph (Section 9.4). ✦ A technique for finding minimal spanning trees (Section 9.5). ✦ A useful technique for exploring graphs, called “depth-first search” (Section 9.6). 451 452 THE GRAPH DATA MODEL ✦ Applications of depth-first search to test whether a directed graph has a cycle, to find a topological order for acyclic graphs, and to determine whether there is a path from one node to another (Section 9.7).
    [Show full text]
  • Computational Hardness of Optimal Fair Computation: Beyond Minicrypt
    Computational Hardness of Optimal Fair Computation: Beyond Minicrypt Hemanta K. Maji Department of Computer Science, Purdue University, USA [email protected] Mingyuan Wang Department of Computer Science, Purdue University, USA [email protected] Abstract Secure multi-party computation allows mutually distrusting parties to compute securely over their private data. However, guaranteeing output delivery to honest parties when the adversarial parties may abort the protocol has been a challenging objective. As a representative task, this work considers two-party coin-tossing protocols with guaranteed output delivery, a.k.a., fair coin- tossing. In the information-theoretic plain model, as in two-party zero-sum games, one of the parties can force an output with certainty. In the commitment-hybrid, any r-message coin-tossing proto- √ √ col is 1/ r-unfair, i.e., the adversary can change the honest party’s output distribution by 1/ r in the statistical distance. Moran, Naor, and Segev (TCC–2009) constructed the first 1/r-unfair protocol in the oblivious transfer-hybrid. No further security improvement is possible because Cleve (STOC–1986) proved that 1/r-unfairness is unavoidable. Therefore, Moran, Naor, and Segev’s coin-tossing protocol is optimal. However, is oblivious transfer necessary for optimal fair coin-tossing? Maji and Wang (CRYPTO–2020) proved that any coin-tossing protocol using one-way func- √ tions in a black-box manner is at least 1/ r-unfair. That is, optimal fair coin-tossing is impossible in Minicrypt. Our work focuses on tightly characterizing the hardness of computation assump- tion necessary and sufficient for optimal fair coin-tossing within Cryptomania, outside Minicrypt.
    [Show full text]
  • Counter-Mode Encryption (“CTR Mode”) Was Introduced by Diffie and Hellman Already in 1979 [5] and Is Already Standardized By, for Example, [1, Section 6.4]
    Comments to NIST concerning AES Modes of Operations: CTR-Mode Encryption Helger Lipmaa Phillip Rogaway Helsinki University of Technology (Finland) and University of California at Davis (USA) and University of Tartu (Estonia) Chiang Mai University (Thailand) [email protected] [email protected] http://www.tml.hut.fi/helger http://www.cs.ucdavis.edu/ rogaway David Wagner University of California Berkeley (USA) [email protected] http://www.cs.berkeley.edu/wagner September 2000 Abstract Counter-mode encryption (“CTR mode”) was introduced by Diffie and Hellman already in 1979 [5] and is already standardized by, for example, [1, Section 6.4]. It is indeed one of the best known modes that are not standardized in [10]. We suggest that NIST, in standardizing AES modes of operation, should include CTR-mode encryption as one possibility for the next reasons. First, CTR mode has significant efficiency advantages over the standard encryption modes without weakening the security. In particular its tight security has been proven. Second, most of the perceived disadvantages of CTR mode are not valid criticisms, but rather caused by the lack of knowledge. 1 Review of Counter-Mode Encryption E ´X µ Ò X à E Notation. Let à denote the encipherment of an -bit block using key and a block cipher . For concrete- =AEË Ò =½¾8 X i X · i ness we assume that E ,so .If is a nonempty string and is a nonnegative integer, then X j X denotes the j -bit string that one gets by regarding as a nonnegative number (written in binary, most significant bit jX j ¾ jX j first), adding i to this number, taking the result modulo , and converting this number back into an -bit string.
    [Show full text]
  • The Cryptographic Impact of Groups with Infeasible Inversion Susan Rae
    The Cryptographic Impact of Groups with Infeasible Inversion by Susan Rae Hohenberger Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Science in Computer Science and Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY May 2003 ©Massachusetts Institute of Technology 2003. All rights reserved. ....................... Author ....... .---- -- -........ ... * Department of Electrical Engineering and Computer Science May 16, 2003 C ertified by ..................................... Ronald L. Rivest Viterbi Professor of Electrical Engineering and Computer Science Thesis Supervisor Accepted by ............... .. ... .S . i. t Arthur C. Smith Chairman, Department Committee on Graduate Students MASSACHUSETTS INSTITUTE OF TECHNOLO GY SWO JUL 0 7 2003 LIBRARIES 2 The Cryptographic Impact of Groups with Infeasible Inversion by Susan Rae Hohenberger Submitted to the Department of Electrical Engineering and Computer Science on May 16, 2003, in partial fulfillment of the requirements for the degree of Master of Science in Computer Science and Engineering Abstract Algebraic group structure is an important-and often overlooked-tool for constructing and comparing cryptographic applications. Our driving example is the open problem of finding provably secure transitive signature schemes for directed graphs, proposed by Micali and Rivest [41]. A directed transitive signature scheme (DTS) allows Alice to sign a subset of edges on a directed graph in such a way that anyone can compose Alice's signatures on edges a and bc to obtain her signature on edge -a. We formalize the necessary mathemat- ical criteria for a secure DTS scheme when the signatures can be composed in any order, showing that the edge signatures in such a scheme form a special (and powerful) mathemat- ical group not known to exist: an Abelian trapdoor group with infeasible inversion (ATGII).
    [Show full text]
  • List Representation: Adjacency List – N Rows of the Adjacency Matrix Are
    List Representation: Adjacency List { n rows of the adjacency matrix are repre- sented as n linked lists { Declare an Array of size n e.g. A[1:::n] of Lists { A[i] is a pointer to the edges in E(G) starting at vertex i. Undirected graph: data in each list cell is a number indicating the adjacent vertex Weighted graph: data in each list cell is a pair (vertex, weight) 1 a b c e a [b,2] [c,6] [e,4] b a b [a,2] c a e d c [a,6] [e,3] [d,1] d c d [c,1] e a c e [a,4] [c,3] Properties: { the degree of any node is the number of elements in the list { O(e) to check for adjacency for e edges. { O(n + e) space for graph with n vertices and e edges. 2 Search and Traversal Techniques Trees and Graphs are models on which algo- rithmic solutions for many problems are con- structed. Traversal: All nodes of a tree/graph are exam- ined/evaluated, e.g. | Evaluate an expression | Locate all the neighbours of a vertex V in a graph Search: only a subset of vertices(nodes) are examined, e.g. | Find the first token of a certain value in an Abstract Syntax Tree. 3 Types of Traversals Binary Tree traversals: | Inorder, Postorder, Preorder General Tree traversals: | With many children at each node Graph Traversals: | With Trees as a special case of a graph 4 Binary Tree Traversal Recall a Binary tree | is a tree structure in which there can be at most two children for each parent | A single node is the root | The nodes without children are leaves | A parent can have a left child (subtree) and a right child (subtree) A node may be a record of information | A node is visited when it is considered in the traversal | Visiting a node may involve computation with one or more of the data fields at the node.
    [Show full text]
  • Chromatic Scheduling of Dynamic Data-Graph
    Chromatic Scheduling of Dynamic Data-Graph Computations by Tim Kaler Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degree of Master of Engineering in Electrical Engineering and Computer Science at the AROH!VE rNSTITUTE MASSACHUSETTS INSTITUTE OF TECHNOLOGY May 2013 W 2.9 2MH3 Copyright 2013 Tim Kaler. All rig ts reserved. The author hereby grants to M.I.T. permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole and in part in any medium now known or hereafter created. A u th or ................................................................ Department of Electrical Engineering and Computer Science May 24, 2013 Certified by ..... ...... Charles E. Leiserson Professor of Computer Science and Engineering Thesis Supervisor Accepted by ...... 'I Dennis M. Freeman Chairman, Department Committee on Graduate Students Chromatic Scheduling of Dynamic Data-Graph Computations by Tim Kaler Submitted to the Department of Electrical Engineering and Computer Science on May 24, 2013, in partial fulfillment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science Abstract Data-graph computations are a parallel-programming model popularized by pro- gramming systems such as Pregel, GraphLab, PowerGraph, and GraphChi. A fun- damental issue in parallelizing data-graph computations is the avoidance of races be- tween computation occuring on overlapping regions of the graph. Common solutions such as locking protocols and bulk-synchronous execution often sacrifice performance, update atomicity, or determinism. A known alternative is chromatic scheduling which uses a vertex coloring of the conflict graph to divide data-graph updates into sets which may be parallelized without races.
    [Show full text]
  • Package 'Igraph'
    Package ‘igraph’ February 28, 2013 Version 0.6.5-1 Date 2013-02-27 Title Network analysis and visualization Author See AUTHORS file. Maintainer Gabor Csardi <[email protected]> Description Routines for simple graphs and network analysis. igraph can handle large graphs very well and provides functions for generating random and regular graphs, graph visualization,centrality indices and much more. Depends stats Imports Matrix Suggests igraphdata, stats4, rgl, tcltk, graph, Matrix, ape, XML,jpeg, png License GPL (>= 2) URL http://igraph.sourceforge.net SystemRequirements gmp, libxml2 NeedsCompilation yes Repository CRAN Date/Publication 2013-02-28 07:57:40 R topics documented: igraph-package . .5 aging.prefatt.game . .8 alpha.centrality . 10 arpack . 11 articulation.points . 15 as.directed . 16 1 2 R topics documented: as.igraph . 18 assortativity . 19 attributes . 21 autocurve.edges . 23 barabasi.game . 24 betweenness . 26 biconnected.components . 28 bipartite.mapping . 29 bipartite.projection . 31 bonpow . 32 canonical.permutation . 34 centralization . 36 cliques . 39 closeness . 40 clusters . 42 cocitation . 43 cohesive.blocks . 44 Combining attributes . 48 communities . 51 community.to.membership . 55 compare.communities . 56 components . 57 constraint . 58 contract.vertices . 59 conversion . 60 conversion between igraph and graphNEL graphs . 62 convex.hull . 63 decompose.graph . 64 degree . 65 degree.sequence.game . 66 dendPlot . 67 dendPlot.communities . 68 dendPlot.igraphHRG . 70 diameter . 72 dominator.tree . 73 Drawing graphs . 74 dyad.census . 80 eccentricity . 81 edge.betweenness.community . 82 edge.connectivity . 84 erdos.renyi.game . 86 evcent . 87 fastgreedy.community . 89 forest.fire.game . 90 get.adjlist . 92 get.edge.ids . 93 get.incidence . 94 get.stochastic .
    [Show full text]
  • An XML-Based Description of Structured Networks
    Massimo Ancona, Walter Cazzola, Sara Drago, and Francesco Guido. An XML-Based Description of Structured Networks. In Proceedings of Interna- tional Conference Communications 2004, pages 401–406, Bucharest, Romania, June 2004. IEEE Press. An XML-Based Description of Structured Networks Massimo Ancona£ Walter Cazzola† Sara Drago£ Francesco Guido‡ £ DISI University of Genova, e-mail: fancona,[email protected] † DICo University of Milano, e-mail: [email protected] ‡ Marconi Selenia Communication, e-mail: [email protected] Abstract In this paper we present an XML-based formalism to describe hierarchically organized communication networks. After a short overview of existing graph description languages, we discuss the advantages and disadvantages of their application in network optimization. We conclude by extending one of these formalisms with features supporting the description of the relationship between the optimized logical layout of a network and its physical counterpart. Elements for describing traffic parameters are also given. 1 Introduction The problem of network design and optimization has a strategical importance especially for military networks. In this case, design for fault tolerance and security plays a role more and more crucial than the equivalent importance required for commercial and research networks. The reengineering of a large communication network is a complex problem, which consists of different aspects that can be strongly affected by the way of describing data. The plainest way to describe a communication network is to model the relationship among sites and links by means of a weighted undirected graph, but unless some more assumptions are taken, this approach can raise several problems. A first issue is encountered when an analysis and a visualization of the network has to be realized: practical networks include hundreds or often thousands of nodes and links, so that even a simple description and documentation of the network structure is hard to maintain and update.
    [Show full text]