Distributed Graph Algorithms for Computer Networks

Distributed Graph Algorithms for Computer Networks

Author: Kayhan Erciyes

Publisher: Springer Science & Business Media

Published: 2013-05-16

Total Pages: 328

ISBN-13: 1447151739

DOWNLOAD EBOOK

This book presents a comprehensive review of key distributed graph algorithms for computer network applications, with a particular emphasis on practical implementation. Topics and features: introduces a range of fundamental graph algorithms, covering spanning trees, graph traversal algorithms, routing algorithms, and self-stabilization; reviews graph-theoretical distributed approximation algorithms with applications in ad hoc wireless networks; describes in detail the implementation of each algorithm, with extensive use of supporting examples, and discusses their concrete network applications; examines key graph-theoretical algorithm concepts, such as dominating sets, and parameters for mobility and energy levels of nodes in wireless ad hoc networks, and provides a contemporary survey of each topic; presents a simple simulator, developed to run distributed algorithms; provides practical exercises at the end of each chapter.


Guide to Graph Algorithms

Guide to Graph Algorithms

Author: K Erciyes

Publisher: Springer

Published: 2018-04-13

Total Pages: 475

ISBN-13: 3319732358

DOWNLOAD EBOOK

This clearly structured textbook/reference presents a detailed and comprehensive review of the fundamental principles of sequential graph algorithms, approaches for NP-hard graph problems, and approximation algorithms and heuristics for such problems. The work also provides a comparative analysis of sequential, parallel and distributed graph algorithms – including algorithms for big data – and an investigation into the conversion principles between the three algorithmic methods. Topics and features: presents a comprehensive analysis of sequential graph algorithms; offers a unifying view by examining the same graph problem from each of the three paradigms of sequential, parallel and distributed algorithms; describes methods for the conversion between sequential, parallel and distributed graph algorithms; surveys methods for the analysis of large graphs and complex network applications; includes full implementation details for the problems presented throughout the text; provides additional supporting material at an accompanying website. This practical guide to the design and analysis of graph algorithms is ideal for advanced and graduate students of computer science, electrical and electronic engineering, and bioinformatics. The material covered will also be of value to any researcher familiar with the basics of discrete mathematics, graph theory and algorithms.


An Introduction to Distributed Algorithms

An Introduction to Distributed Algorithms

Author: Valmir C. Barbosa

Publisher: MIT Press

Published: 1996

Total Pages: 390

ISBN-13: 9780262024129

DOWNLOAD EBOOK

An Introduction to Distributed Algorithms takes up some of the main concepts and algorithms, ranging from basic to advanced techniques and applications, that underlie the programming of distributed-memory systems such as computer networks, networks of work-stations, and multiprocessors. Written from the broad perspective of distributed-memory systems in general it includes topics such as algorithms for maximum flow, programme debugging, and simulation that do not appear in more orthodox texts on distributed algorithms.


Distributed Algorithms for Message-Passing Systems

Distributed Algorithms for Message-Passing Systems

Author: Michel Raynal

Publisher: Springer Science & Business Media

Published: 2013-06-29

Total Pages: 518

ISBN-13: 3642381235

DOWNLOAD EBOOK

Distributed computing is at the heart of many applications. It arises as soon as one has to solve a problem in terms of entities -- such as processes, peers, processors, nodes, or agents -- that individually have only a partial knowledge of the many input parameters associated with the problem. In particular each entity cooperating towards the common goal cannot have an instantaneous knowledge of the current state of the other entities. Whereas parallel computing is mainly concerned with 'efficiency', and real-time computing is mainly concerned with 'on-time computing', distributed computing is mainly concerned with 'mastering uncertainty' created by issues such as the multiplicity of control flows, asynchronous communication, unstable behaviors, mobility, and dynamicity. While some distributed algorithms consist of a few lines only, their behavior can be difficult to understand and their properties hard to state and prove. The aim of this book is to present in a comprehensive way the basic notions, concepts, and algorithms of distributed computing when the distributed entities cooperate by sending and receiving messages on top of an asynchronous network. The book is composed of seventeen chapters structured into six parts: distributed graph algorithms, in particular what makes them different from sequential or parallel algorithms; logical time and global states, the core of the book; mutual exclusion and resource allocation; high-level communication abstractions; distributed detection of properties; and distributed shared memory. The author establishes clear objectives per chapter and the content is supported throughout with illustrative examples, summaries, exercises, and annotated bibliographies. This book constitutes an introduction to distributed computing and is suitable for advanced undergraduate students or graduate students in computer science and computer engineering, graduate students in mathematics interested in distributed computing, and practitioners and engineers involved in the design and implementation of distributed applications. The reader should have a basic knowledge of algorithms and operating systems.


Distributed Graph Analytics

Distributed Graph Analytics

Author: Unnikrishnan Cheramangalath

Publisher: Springer Nature

Published: 2020-04-17

Total Pages: 207

ISBN-13: 3030418863

DOWNLOAD EBOOK

This book brings together two important trends: graph algorithms and high-performance computing. Efficient and scalable execution of graph processing applications in data or network analysis requires innovations at multiple levels: algorithms, associated data structures, their implementation and tuning to a particular hardware. Further, programming languages and the associated compilers play a crucial role when it comes to automating efficient code generation for various architectures. This book discusses the essentials of all these aspects. The book is divided into three parts: programming, languages, and their compilation. The first part examines the manual parallelization of graph algorithms, revealing various parallelization patterns encountered, especially when dealing with graphs. The second part uses these patterns to provide language constructs that allow a graph algorithm to be specified. Programmers can work with these language constructs without worrying about their implementation, which is the focus of the third part. Implementation is handled by a compiler, which can specialize code generation for a backend device. The book also includes suggestive results on different platforms, which illustrate and justify the theory and practice covered. Together, the three parts provide the essential ingredients for creating a high-performance graph application. The book ends with a section on future directions, which offers several pointers to promising topics for future research. This book is intended for new researchers as well as graduate and advanced undergraduate students. Most of the chapters can be read independently by those familiar with the basics of parallel programming and graph algorithms. However, to make the material more accessible, the book includes a brief background on elementary graph algorithms, parallel computing and GPUs. Moreover it presents a case study using Falcon, a domain-specific language for graph algorithms, to illustrate the concepts.


Improved Distributed Algorithms for Fundamental Graph Problems

Improved Distributed Algorithms for Fundamental Graph Problems

Author: Mohsen Ghaffari

Publisher:

Published: 2017

Total Pages: 255

ISBN-13:

DOWNLOAD EBOOK

Distributed graph algorithms provide efficient and theoretically sound methods for solving graph problems in distributed settings and more generally for performing distributed computation in networks. These algorithms are applicable in a wide variety of settings, ranging from computer networks to massively parallel computing and beyond. This thesis addresses a number of the central problems of distributed graph algorithms. These problems generally revolve around two of the principal challenges of the area, locality and congestion. The problems include computing maximal independent set, minimum spanning tree, minimum edge cut and minimum vertex cut, graph connectivity decompositions, network information dissemination, minimum-weight connected dominating set, and scheduling distributed protocols. We develop novel techniques, concepts, and tools for these problems, and present algorithms and impossibility results which improve considerably on the state of the art, in several cases resolving or advancing long-standing open problems.


Distributed Graph Coloring

Distributed Graph Coloring

Author: Leonid Barenboim

Publisher: Morgan & Claypool Publishers

Published: 2013-07-01

Total Pages: 173

ISBN-13: 1627050191

DOWNLOAD EBOOK

The objective of our monograph is to cover the developments on the theoretical foundations of distributed symmetry breaking in the message-passing model. We hope that our monograph will stimulate further progress in this exciting area.


Distributed Graph Analytics

Distributed Graph Analytics

Author: Unnikrishnan Cheramangalath

Publisher:

Published: 2020

Total Pages: 207

ISBN-13: 9783030418878

DOWNLOAD EBOOK

This book brings together two important trends: graph algorithms and high-performance computing. Efficient and scalable execution of graph processing applications in data or network analysis requires innovations at multiple levels: algorithms, associated data structures, their implementation and tuning to a particular hardware. Further, programming languages and the associated compilers play a crucial role when it comes to automating efficient code generation for various architectures. This book discusses the essentials of all these aspects. The book is divided into three parts: programming, languages, and their compilation. The first part examines the manual parallelization of graph algorithms, revealing various parallelization patterns encountered, especially when dealing with graphs. The second part uses these patterns to provide language constructs that allow a graph algorithm to be specified. Programmers can work with these language constructs without worrying about their implementation, which is the focus of the third part. Implementation is handled by a compiler, which can specialize code generation for a backend device. The book also includes suggestive results on different platforms, which illustrate and justify the theory and practice covered. Together, the three parts provide the essential ingredients for creating a high-performance graph application. The book ends with a section on future directions, which offers several pointers to promising topics for future research. This book is intended for new researchers as well as graduate and advanced undergraduate students. Most of the chapters can be read independently by those familiar with the basics of parallel programming and graph algorithms. However, to make the material more accessible, the book includes a brief background on elementary graph algorithms, parallel computing and GPUs. Moreover it presents a case study using Falcon, a domain-specific language for graph algorithms, to illustrate the concept s.


Algebraic Graph Algorithms

Algebraic Graph Algorithms

Author: K. Erciyes

Publisher: Springer Nature

Published: 2021-11-17

Total Pages: 229

ISBN-13: 3030878864

DOWNLOAD EBOOK

This textbook discusses the design and implementation of basic algebraic graph algorithms, and algebraic graph algorithms for complex networks, employing matroids whenever possible. The text describes the design of a simple parallel matrix algorithm kernel that can be used for parallel processing of algebraic graph algorithms. Example code is presented in pseudocode, together with case studies in Python and MPI. The text assumes readers have a background in graph theory and/or graph algorithms.


Graph Algorithms in the Language of Linear Algebra

Graph Algorithms in the Language of Linear Algebra

Author: Jeremy Kepner

Publisher: SIAM

Published: 2011-01-01

Total Pages: 388

ISBN-13: 9780898719918

DOWNLOAD EBOOK

The current exponential growth in graph data has forced a shift to parallel computing for executing graph algorithms. Implementing parallel graph algorithms and achieving good parallel performance have proven difficult. This book addresses these challenges by exploiting the well-known duality between a canonical representation of graphs as abstract collections of vertices and edges and a sparse adjacency matrix representation. This linear algebraic approach is widely accessible to scientists and engineers who may not be formally trained in computer science. The authors show how to leverage existing parallel matrix computation techniques and the large amount of software infrastructure that exists for these computations to implement efficient and scalable parallel graph algorithms. The benefits of this approach are reduced algorithmic complexity, ease of implementation, and improved performance.