Maintaining the minimum spanning forest of fully dynamic graphs on the dynamic pipeline computational pattern

View/Open
Cita com:
hdl:2117/417505
Document typeMaster thesis
Date2024-06-28
Rights accessOpen Access
All rights reserved. This work is protected by the corresponding intellectual and industrial
property rights. Without prejudice to any existing legal exemptions, reproduction, distribution, public
communication or transformation of this work are prohibited without permission of the copyright holder
Abstract
In this work we tackle the problem of using the Dynamic Pipeline Approach to parallelize the Kruskal's algorithm and thus compute and maintain the Minimum Spanning Tree of dynamic graphs in parallel and distributed settings. To achieve this, we introduce a characterization of graphs that we call an underlying forest of a graph. This characterization gives the basis for representing graphs in a distributed way along a dynamic pipeline. The proposed algorithm, named DP_Kruskal, utilizes a pipeline architecture where the graph is partitioned into trees and distributed across a sequence of stages each handling different aspects of computation. Under this algorithm it possible to keep efficiently graph updates as well as to apply Kruskal's Algorithm at every stage of the pipeline to compute incrementally the minimum spanning tree of the stored graph. A working implementation was developed to analyze the suitability of DP_Kruskal against other algorithms. The programming language Go was chosen because of its concurrency features, as its goroutines and communication channels naturally align with the Dynamic Pipeline Approach. Several key optimizations were introduced in DP_Kruskal. Some of them regarding the implementation and others the Dynamic Pipeline Approach. Notably, we propose a way to disentangle the message passing from computational tasks which is a general optimization that enhances the entire Dynamic Pipeline Approach framework, not just for DP_Kruskal. These optimizations not only improve program's efficiency but also address and resolve memory management issues within Go. Extensive experimental evaluations were conducted to compare DP_Kruskal with both sequential and parallel algorithms. Kruskal's algorithm was selected for sequential comparisons, while Filter_Kruskal and a message-passing implementation of Prim's algorithm for parallel algorithms. The results demonstrate that DP_Kruskal significantly outperforms its counterparts in both single-core and parallel environments, showcasing its superior performance and scalability for handling large and dynamic graphs. This work substantiates the effectiveness of the Dynamic Pipeline Approach in addressing complex graph problems and underscores its potential for wider application in parallel computing.
SubjectsParallel programming (Computer science), Dynamic programming, Programació en paral·lel (Informàtica), Programació dinàmica
DegreeMÀSTER UNIVERSITARI EN INNOVACIÓ I RECERCA EN INFORMÀTICA (Pla 2012)
Files | Description | Size | Format | View |
---|---|---|---|---|
188441.pdf | 7,451Mb | View/Open |