The Experts below are selected from a list of 324 Experts worldwide ranked by ideXlab platform
Fredrik Manne - One of the best experts on this subject based on the ideXlab platform.
-
multi core spanning forest algorithms using the Disjoint Set data structure
International Parallel and Distributed Processing Symposium, 2012Co-Authors: Md Shahadath Hossain Patwary, Peder Refsnes, Fredrik ManneAbstract:We present new multi-core algorithms for computing spanning forests and connected components of large sparse graphs. The algorithms are based on the use of the Disjoint-Set data structure. When compared with the previous best algorithms for these problems our algorithms are appealing for several reasons: Extensive experiments using up to 40 threads on several different types of graphs show that they scale better. Also, the new algorithms do not make use of any hardware specific routines, and thus are highly portable. Finally, the algorithms are quite simple and easy to implement.
-
A new scalable parallel DBSCAN algorithm using the Disjoint-Set data structure
International Conference for High Performance Computing Networking Storage and Analysis SC, 2012Co-Authors: Md Shahadath Hossain Patwary, Diana Palsetia, Wei-keng Liao, Fredrik Manne, Ankit Agrawal, Alok ChoudharyAbstract:DBSCAN is a well-known density based clustering algorithm capable of discovering arbitrary shaped clusters and eliminating noise data. However, parallelization of Dbscan is challenging as it exhibits an inherent sequential data access order. Moreover, existing parallel implementations adopt a master-slave strategy which can easily cause an unbalanced workload and hence result in low parallel efficiency. We present a new parallel Dbscan algorithm (Pdsdbscan) using graph algorithmic concepts. More specifically, we employ the Disjoint-Set data structure to break the access sequentiality of Dbscan. In addition, we use a tree-based bottom-up approach to construct the clusters. This yields a better-balanced workload distribution. We implement the algorithm both for shared and for distributed memory. Using data Sets containing up to several hundred million high-dimensional points, we show that Pdsdbscan significantly outperforms the master-slave approach, achieving speedups up to 25.97 using 40 cores on shared memory architecture, and speedups up to 5,765 using 8,192 cores on distributed memory architecture.
-
IPDPS - Multi-core Spanning Forest Algorithms using the Disjoint-Set Data Structure
2012 IEEE 26th International Parallel and Distributed Processing Symposium, 2012Co-Authors: Md Shahadath Hossain Patwary, Peder Refsnes, Fredrik ManneAbstract:We present new multi-core algorithms for computing spanning forests and connected components of large sparse graphs. The algorithms are based on the use of the Disjoint-Set data structure. When compared with the previous best algorithms for these problems our algorithms are appealing for several reasons: Extensive experiments using up to 40 threads on several different types of graphs show that they scale better. Also, the new algorithms do not make use of any hardware specific routines, and thus are highly portable. Finally, the algorithms are quite simple and easy to implement.
-
Experiments on union-find algorithms for the Disjoint-Set data structure
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2010Co-Authors: Md Shahadath Hossain Patwary, Jean Blair, Fredrik ManneAbstract:The Disjoint-Set data structure is used to maintain a collection of non-overlapping Sets of elements from a finite universe. Algorithms that operate on this data structure are often referred to as Union-Find algorithms. They are used in numerous practical applications and are also available in several software libraries. This paper presents an extensive experimental study comparing the time required to execute 55 variations of Union-Find algorithms. The study includes all the classical algorithms, several recently suggested enhancements, and also different combinations and optimizations of these. Our results clearly show that a somewhat forgotten simple algorithm developed by Rem in 1976 is the fastest, in spite of the fact that its worst-case time complexity is inferior to that of the commonly accepted “best” algorithms.
-
SEA - Experiments on union-find algorithms for the Disjoint-Set data structure
Experimental Algorithms, 2010Co-Authors: Mostofa Ali Patwary, Jean R. S. Blair, Fredrik ManneAbstract:The Disjoint-Set data structure is used to maintain a collection of non-overlapping Sets of elements from a finite universe. Algorithms that operate on this data structure are often referred to as Union-Find algorithms. They are used in numerous practical applications and are also available in several software libraries. This paper presents an extensive experimental study comparing the time required to execute 55 variations of Union-Find algorithms. The study includes all the classical algorithms, several recently suggested enhancements, and also different combinations and optimizations of these. Our results clearly show that a somewhat forgotten simple algorithm developed by Rem in 1976 is the fastest, in spite of the fact that its worst-case time complexity is inferior to that of the commonly accepted “best” algorithms.
Md Shahadath Hossain Patwary - One of the best experts on this subject based on the ideXlab platform.
-
multi core spanning forest algorithms using the Disjoint Set data structure
International Parallel and Distributed Processing Symposium, 2012Co-Authors: Md Shahadath Hossain Patwary, Peder Refsnes, Fredrik ManneAbstract:We present new multi-core algorithms for computing spanning forests and connected components of large sparse graphs. The algorithms are based on the use of the Disjoint-Set data structure. When compared with the previous best algorithms for these problems our algorithms are appealing for several reasons: Extensive experiments using up to 40 threads on several different types of graphs show that they scale better. Also, the new algorithms do not make use of any hardware specific routines, and thus are highly portable. Finally, the algorithms are quite simple and easy to implement.
-
A new scalable parallel DBSCAN algorithm using the Disjoint-Set data structure
International Conference for High Performance Computing Networking Storage and Analysis SC, 2012Co-Authors: Md Shahadath Hossain Patwary, Diana Palsetia, Wei-keng Liao, Fredrik Manne, Ankit Agrawal, Alok ChoudharyAbstract:DBSCAN is a well-known density based clustering algorithm capable of discovering arbitrary shaped clusters and eliminating noise data. However, parallelization of Dbscan is challenging as it exhibits an inherent sequential data access order. Moreover, existing parallel implementations adopt a master-slave strategy which can easily cause an unbalanced workload and hence result in low parallel efficiency. We present a new parallel Dbscan algorithm (Pdsdbscan) using graph algorithmic concepts. More specifically, we employ the Disjoint-Set data structure to break the access sequentiality of Dbscan. In addition, we use a tree-based bottom-up approach to construct the clusters. This yields a better-balanced workload distribution. We implement the algorithm both for shared and for distributed memory. Using data Sets containing up to several hundred million high-dimensional points, we show that Pdsdbscan significantly outperforms the master-slave approach, achieving speedups up to 25.97 using 40 cores on shared memory architecture, and speedups up to 5,765 using 8,192 cores on distributed memory architecture.
-
IPDPS - Multi-core Spanning Forest Algorithms using the Disjoint-Set Data Structure
2012 IEEE 26th International Parallel and Distributed Processing Symposium, 2012Co-Authors: Md Shahadath Hossain Patwary, Peder Refsnes, Fredrik ManneAbstract:We present new multi-core algorithms for computing spanning forests and connected components of large sparse graphs. The algorithms are based on the use of the Disjoint-Set data structure. When compared with the previous best algorithms for these problems our algorithms are appealing for several reasons: Extensive experiments using up to 40 threads on several different types of graphs show that they scale better. Also, the new algorithms do not make use of any hardware specific routines, and thus are highly portable. Finally, the algorithms are quite simple and easy to implement.
-
Experiments on union-find algorithms for the Disjoint-Set data structure
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2010Co-Authors: Md Shahadath Hossain Patwary, Jean Blair, Fredrik ManneAbstract:The Disjoint-Set data structure is used to maintain a collection of non-overlapping Sets of elements from a finite universe. Algorithms that operate on this data structure are often referred to as Union-Find algorithms. They are used in numerous practical applications and are also available in several software libraries. This paper presents an extensive experimental study comparing the time required to execute 55 variations of Union-Find algorithms. The study includes all the classical algorithms, several recently suggested enhancements, and also different combinations and optimizations of these. Our results clearly show that a somewhat forgotten simple algorithm developed by Rem in 1976 is the fastest, in spite of the fact that its worst-case time complexity is inferior to that of the commonly accepted “best” algorithms.
Andrew Miller - One of the best experts on this subject based on the ideXlab platform.
-
Finding dominators via Disjoint Set union
Journal of Discrete Algorithms, 2013Co-Authors: Wojciech Fraczak, Loukas Georgiadis, Andrew Miller, Robert E. TarjanAbstract:The problem of finding dominators in a directed graph has many important applications, notably in global optimization of computer code. Although linear and near-linear-time algorithms exist, they use sophisticated data structures. We develop an algorithm for finding dominators that uses only a ''static tree'' Disjoint Set data structure in addition to simple lists and maps. The algorithm runs in near-linear or linear time, depending on the implementation of the Disjoint Set data structure. We give several versions of the algorithm, including one that computes loop nesting information (needed in many kinds of global code optimization) and that can be made self-certifying, so that the correctness of the computed dominators is very easy to verify.
-
Disjoint Set forest digraph representation for an efficient dominator tree construction
International Workshop on Combinatorial Algorithms, 2012Co-Authors: Wojciech Fraczak, Andrew MillerAbstract:We consider a non-orthodox representation of directed graphs which uses the “Disjoint Set forest” data structure. We show how such a representation can be used in order to efficiently find the dominator tree. Even though the performance of our algorithm does not improve over the already known algorithms for constructing the dominator tree, the approach is new and it gives place to a highly structured and simple to follow proof of correctness.
-
IWOCA - Disjoint Set Forest Digraph Representation for an Efficient Dominator Tree Construction
Lecture Notes in Computer Science, 2012Co-Authors: Wojciech Fraczak, Andrew MillerAbstract:We consider a non-orthodox representation of directed graphs which uses the “Disjoint Set forest” data structure. We show how such a representation can be used in order to efficiently find the dominator tree. Even though the performance of our algorithm does not improve over the already known algorithms for constructing the dominator tree, the approach is new and it gives place to a highly structured and simple to follow proof of correctness.
Robert E. Tarjan - One of the best experts on this subject based on the ideXlab platform.
-
Concurrent Disjoint Set union
Distributed Computing, 2021Co-Authors: Siddhartha V. Jayanti, Robert E. TarjanAbstract:We develop and analyze concurrent algorithms for the Disjoint Set union (“union-find” ) problem in the shared memory, asynchronous multiprocessor model of computation, with CAS (compare and swap) or DCAS (double compare and swap) as the synchronization primitive. We give a deterministic bounded wait-free algorithm that uses DCAS and has a total work bound of $$O\biggl ( m \cdot \left( \log {\left( \frac{np}{m} + 1 \right) } + \alpha {\left( n, \frac{m}{np} \right) } \right) \biggr )$$ O ( m · log np m + 1 + α n , m np ) for a problem with n elements and m operations solved by p processes, where $$\alpha $$ α is a functional inverse of Ackermann’s function. We give two randomized algorithms that use only CAS and have the same work bound in expectation. The analysis of the second randomized algorithm is valid even if the scheduler is adversarial. Our DCAS and randomized algorithms take $$O(\log n)$$ O ( log n ) steps per operation, worst-case for the DCAS algorithm, high-probability for the randomized algorithms. Our work and step bounds grow only logarithmically with p , making our algorithms truly scalable. We prove that for a class of symmetric algorithms that includes ours, no better step or work bound is possible. Our work is theoretical, but Alistarh et al (In search of the fastest concurrent union-find algorithm, 2019), Dhulipala et al (A framework for static and incremental parallel graph connectivity algorithms, 2020) and Hong et al (Exploring the design space of static and incremental graph connectivity algorithms on gpus, 2020) have implemented some of our algorithms on CPUs and GPUs and experimented with them. On many realistic data Sets, our algorithms run as fast or faster than all others.
-
Concurrent Disjoint Set Union.
arXiv: Distributed Parallel and Cluster Computing, 2020Co-Authors: Siddhartha Jayanti, Robert E. TarjanAbstract:We develop and analyze concurrent algorithms for the Disjoint Set union (union-find) problem in the shared memory, asynchronous multiprocessor model of computation, with CAS (compare and swap) or DCAS (double compare and swap) as the synchronization primitive. We give a deterministic bounded wait-free algorithm that uses DCAS and has a total work bound of $O(m \cdot (\log(np/m + 1) + \alpha(n, m/(np)))$ for a problem with $n$ elements and $m$ operations solved by $p$ processes, where $\alpha$ is a functional inverse of Ackermann's function. We give two randomized algorithms that use only CAS and have the same work bound in expectation. The analysis of the second randomized algorithm is valid even if the scheduler is adversarial. Our DCAS and randomized algorithms take $O(\log n)$ steps per operation, worst-case for the DCAS algorithm, high-probability for the randomized algorithms. Our work and step bounds grow only logarithmically with $p$, making our algorithms truly scalable. We prove that for a class of symmetric algorithms that includes ours, no better step or work bound is possible.
-
a randomized concurrent algorithm for Disjoint Set union
arXiv: Distributed Parallel and Cluster Computing, 2016Co-Authors: Siddhartha V. Jayanti, Robert E. TarjanAbstract:The Disjoint Set union problem is a basic problem in data structures with a wide variety of applications. We extend a known efficient sequential algorithm for this problem to obtain a simple and efficient concurrent wait-free algorithm running on an asynchronous parallel random access machine (APRAM). Crucial to our result is the use of randomization. Under a certain independence assumption, for a problem instance in which there are n elements, m operations, and p processes, our algorithm does Theta(m (alpha(n, m/(np)) + log(np/m + 1))) expected work, where the expectation is over the random choices made by the algorithm and alpha is a functional inverse of Ackermann's function. In addition, each operation takes O(log n) steps with high probability. Our algorithm is significantly simpler and more efficient than previous algorithms proposed by Anderson and Woll. Under our independence assumption, our algorithm achieves almost-linear speed-up for applications in which all or most of the processes can be kept busy.
-
a randomized concurrent algorithm for Disjoint Set union
Principles of Distributed Computing, 2016Co-Authors: Siddhartha V. Jayanti, Robert E. TarjanAbstract:Disjoint Set union is a basic problem in data structures with a wide variety of applications. We extend a known efficient sequential algorithm for this problem to obtain a simple and efficient concurrent wait-free algorithm running on an asynchronous parallel random access machine (APRAM). Crucial to our result is the use of randomization. Under a certain independence assumption, for a problem instance in which there are n elements, m operations, and l processes, our algorithm does θ(m (α{n, m/nl) + log (nl/m + 1 ))) expected work, where the expectation is over the random choices made by the algorithm and α is a functional inverse of Ackermann's function. In addition, each operation takes O(log n) steps with high probability. We point out some gaps in the earlier work on this problem by Anderson and Woll [1]. More importantly, our algorithm is significantly simpler than theirs. Finally, under our independence assumption our algorithm achieves speedup close to linear for applications in which all or most of the processes can be kept busy, thereby partially answering an open problem posed by them.
-
PODC - A Randomized Concurrent Algorithm for Disjoint Set Union
Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing, 2016Co-Authors: Siddhartha Jayanti, Robert E. TarjanAbstract:Disjoint Set union is a basic problem in data structures with a wide variety of applications. We extend a known efficient sequential algorithm for this problem to obtain a simple and efficient concurrent wait-free algorithm running on an asynchronous parallel random access machine (APRAM). Crucial to our result is the use of randomization. Under a certain independence assumption, for a problem instance in which there are n elements, m operations, and l processes, our algorithm does θ(m (α{n, m/nl) + log (nl/m + 1 ))) expected work, where the expectation is over the random choices made by the algorithm and α is a functional inverse of Ackermann's function. In addition, each operation takes O(log n) steps with high probability. We point out some gaps in the earlier work on this problem by Anderson and Woll [1]. More importantly, our algorithm is significantly simpler than theirs. Finally, under our independence assumption our algorithm achieves speedup close to linear for applications in which all or most of the processes can be kept busy, thereby partially answering an open problem posed by them.
Wojciech Fraczak - One of the best experts on this subject based on the ideXlab platform.
-
Finding dominators via Disjoint Set union
Journal of Discrete Algorithms, 2013Co-Authors: Wojciech Fraczak, Loukas Georgiadis, Andrew Miller, Robert E. TarjanAbstract:The problem of finding dominators in a directed graph has many important applications, notably in global optimization of computer code. Although linear and near-linear-time algorithms exist, they use sophisticated data structures. We develop an algorithm for finding dominators that uses only a ''static tree'' Disjoint Set data structure in addition to simple lists and maps. The algorithm runs in near-linear or linear time, depending on the implementation of the Disjoint Set data structure. We give several versions of the algorithm, including one that computes loop nesting information (needed in many kinds of global code optimization) and that can be made self-certifying, so that the correctness of the computed dominators is very easy to verify.
-
Disjoint Set forest digraph representation for an efficient dominator tree construction
International Workshop on Combinatorial Algorithms, 2012Co-Authors: Wojciech Fraczak, Andrew MillerAbstract:We consider a non-orthodox representation of directed graphs which uses the “Disjoint Set forest” data structure. We show how such a representation can be used in order to efficiently find the dominator tree. Even though the performance of our algorithm does not improve over the already known algorithms for constructing the dominator tree, the approach is new and it gives place to a highly structured and simple to follow proof of correctness.
-
IWOCA - Disjoint Set Forest Digraph Representation for an Efficient Dominator Tree Construction
Lecture Notes in Computer Science, 2012Co-Authors: Wojciech Fraczak, Andrew MillerAbstract:We consider a non-orthodox representation of directed graphs which uses the “Disjoint Set forest” data structure. We show how such a representation can be used in order to efficiently find the dominator tree. Even though the performance of our algorithm does not improve over the already known algorithms for constructing the dominator tree, the approach is new and it gives place to a highly structured and simple to follow proof of correctness.