Michael T. Goodrich, Riko Jacob · IT University Of Copenhagen (IT University of Copenhagen) · 2023
We present comparison-based parallel algorithms for sorting n comparable items subject to comparison errors. We consider errors to occur according to a well-studied framework, where the comparison of two elements returns the wrong answer with a fixed probability. In the persistent model, the result of the comparison of two given elements, x and y, always has the same result, and is independent of all other pairs of elements. In the non-persistent model, the result of the comparison of each pair of elements, x and y, is independent of all prior comparisons, including for x and y. It is not possible to always correctly sort a given input set in the persistent model, so we study algorithms that achieve a small maximum dislocation and small total dislocation of the elements in the output permutation. In this paper, we provide parallel algorithms for sorting with comparison errors in the persistent and non-persistent models. Our algorithms are asymptotically optimal in terms of their span, work, and, in the case of persistent errors, maximum and total dislocation. The main results are algorithms for the binary-forking parallel model with atomics, but we also provide algorithms for the CREW PRAM model. Our algorithms include a number of novel techniques and analysis tools, including a PRAM-to-binary-forking-model simulation result, and are the first optimal parallel algorithms for the persistent model and the non-persistent model in the binary-forking parallel model with atomics. In particular, our algorithms have O(log n) span, O(n log n) work, and, in the case of the persistent model, O(log n) maximum dislocation and O(n) total dislocation, with high probability. We achieve similar results for the CREW PRAM model, which are the first optimal methods for the persistent model and the first optimal results for the non-persistent model with reasonable constant factors in the performance bounds.
Cited by 3Open access
P.D. Fiore · IEEE Transactions on Computers · 1999
A recent paper describes the use of Svoboda's binary counter in the construction of fast parallel multipliers. The resulting approach was shown to be faster than the conventional Dadda multiplier when the wordlength N was small. Unfortunately, the growth in the number of gates of that method was O(N/sup 3/) and the speed was O(N). In this paper, Batcher's bitonic sorting network and other efficient networks replace the Svoboda counter. The asymptotic growth rate in gates of these new methods is O(N/sup 2/ log/sup 2/ N), and the speed is O(log/sup 2/ N).
Cited by 6
Baudet, Stevenson · IEEE Transactions on Computers · 1978
The problem of sorting a sequence of n elements on a parallel computer with k processors is considered. The algorithms we present can all be run on a single instruction stream multiple data stream computer. For large n, each achieves an asymptotic speed-up ratio of k with respect to the best sequential algorithm, which is optimal in the number of processors used.
Cited by 157
Daniel Jiménez-González, Josep-L. Larriba-Pey, Juan J. Navarro · Lecture notes in computer science · 2003
Cited by 1
lammich, Mathias Fleury · Zenodo (CERN European Organization for Nuclear Research) · 2024
Release accompanying paper: Refinement of Parallel Algorithms down to LLVM, submitted to JAR SI ITP 2022.
Cited by 0Open access
Michael Albert, Mireille Bousquet‐Mélou · Discrete Mathematics & Theoretical Computer Science · 2014
At the end of the 1960s, Knuth characterised in terms of forbidden patterns the permutations that can be sorted using a stack. He also showed that they are in bijection with Dyck paths and thus counted by the Catalan numbers. Subsequently, Pratt and Tarjan asked about permutations that can be sorted using two stacks in parallel. This question is significantly harder, and the associated counting question has remained open for 40 years. We solve it by giving a pair of equations that characterise the generating function of such permutations. The first component of this system describes the generating function $Q(a,u)$ of square lattice loops confined to the positive quadrant, counted by the length and the number of North-West and East-South factors. Our analysis of the asymptotic number of sortable permutations relies at the moment on two intriguing conjectures dealing with this series. Given the recent activity on walks confined to cones, we believe them to be attractive $\textit{per se}$. We prove these conjectures for closed walks confined to the upper half plane, or not confined at all. Nous énumérons les permutations triables par deux piles en parallèle. Cette question était restée ouverte depuis les travaux de Knuth, Pratt et Tarjan dans les années 70. Notre solution consiste en une paire d’équations qui caractérisent la série génératrice. La première composante de ce système décrit la série $Q(a,u)$ des chemins fermés confinés dans le quart de plan positif, comptés selon leur longueur et le nombre de facteurs Nord-Ouest ou Est-Sud. Notre analyse du comportement asymptotique du nombre de permutations triables repose à ce stade sur deux conjectures remarquables portant sur $Q(a; u)$. Nous les prouvons pour les chemins fermés non confinés, ou confinés au demi-plan supérieur.
Cited by 1Open access
Ali Alsuliman · eScholarship (California Digital Library) · 2018
In parallel database systems, when a query is evaluated, each operation in the query plan is typically parallelized. This allows a large cluster of machines to process a vast amount of data efficiently since all the machines work simultaneously. AsterixDB, a big data management system, leverages this fact to parallelize operations when executing a query, and sort is one such operation.This work is an attempt to optimize the sort operation in AsterixDB to make the entire sort process parallel from start to finish without the need for an additional final merge step at the end of the sort operation. We state our problem and highlight some of the issues with the current approach to sorting. We present the architecture and high-level design of the proposed optimization. Then, we describe the implementation details and how the different components interact with each other. We conclude by showing the results of a performance evaluation before and after this optimization.
Cited by 1Open access
Andrew Tridgell, Richard P. Brent · International Journal of High Speed Computing · 1995
A parallel sorting algorithm is presented for general purpose internal sorting on MIMD machines. The algorithm initially sorts the elements within each node using a serial sorting algorithm, then proceeds with a two-phase parallel merge. The algorithm is comparison-based and requires additional storage of order the square root of the number of elements in each node. Performance of the algorithm on the Fujitsu AP1000 MIMD supercomputer is discussed.
Cited by 7
Bilal Jan, Bartolomeo Montrucchio, C. Ragusa et al. · 2013
Efficient sorting is vital for overall performance of the underlying application. This paper presents Butterfly Network Sort (BNS) for sorting large data sets. A minimal version of the algorithm Min-Max Butterfly is also shown for searching minimum and maximum values in data. Both algorithms are implemented on GPUs using OpenCL exploiting data parallelism model. Results obtained on different GPU architectures show better performance of butterfly sorting in terms of sorting time and rate. The comparison of butterfly sorting with other algorithms:bitonic, odd-even and rank sort show significant speedup improvements against all on Nvidia Quadro-6000 GPU with relatively better sorting time and rate
Cited by 3
Bülent Abali · OhioLink ETD Center (Ohio Library and Information Network) · 1989
Cited by 0Open access
Samuel King Opoku · 2013
Abstract—Conventional sorting algorithms make use of such data structures as array, file and list which define access methods of the items to be sorted. These traditional methods – exchange sort, divide and conquer sort, selection sort and insertion sort – require supervisory control program. The supervisory control program has access to the items and is responsible for arranging them in the proper order. This paper presents a different sorting algorithm that does not require supervisory control program. The objects sort themselves and they are able to terminate when sorting is completed. The algorithm also employs parallel processing mechanisms to increase its efficiency and effectiveness. The paper makes a review of the traditional sorting methods, identifying their pros and cons and proposes a different design based on conceptual combination of these algorithms. Algorithms designed were implemented and tested in Java desktop application.
Cited by 0
Marie Durand · theses.fr (ABES) · 2013
Les joueurs exigeants acquièrent dès que possible une carte graphique capable de satisfaire leur soif d'immersion dans des jeux dont la précision, le réalisme et l'interactivité redoublent d'intensité au fil du temps. Depuis l'avènement des cartes graphiques dédiées au calcul généraliste, ils n'en sont plus les seuls clients. Dans un premier temps, nous analysons l'apport de ces architectures parallèles spécifiques pour des simulations physiques à grande échelle. Cette étude nous permet de mettre en avant un goulot d'étranglement en particulier limitant la performance des simulations. Partons d'un cas typique : les fissures d'une structure complexe de type barrage en béton armé peuvent être modélisées par un ensemble de particules. La cohésion de la matière ainsi simulée est assurée par les interactions entre elles. Chaque particule est représentée en mémoire par un ensemble de paramètres physiques à consulter systématiquement pour tout calcul de forces entre deux particules. Ainsi, pour que les calculs soient rapides, les données de particules proches dans l'espace doivent être proches en mémoire. Dans le cas contraire, le nombre de défauts de cache augmente et la limite de bande passante de la mémoire peut être atteinte, particulièrement en parallèle, bornant les performances. L'enjeu est de maintenir l'organisation des données en mémoire tout au long de la simulation malgré les mouvements des particules. Les algorithmes de tri standard ne sont pas adaptés car ils trient systématiquement tous les éléments. De plus, ils travaillent sur des structures denses ce qui implique de nombreux déplacements de données en mémoire. Nous proposons PaVo, un algorithme de tri dit adaptatif, c'est-à-dire qu'il sait tirer parti de l'ordre pré-existant dans une séquence. De plus, PaVo maintient des trous dans la structure, répartis de manière à réduire le nombre de déplacements mémoires nécessaires. Nous présentons une généreuse étude expérimentale et comparons les résultats obtenus à plusieurs tris renommés. La diminution des accès à la mémoire a encore plus d'importance pour des simulations à grande échelles sur des architectures parallèles. Nous détaillons une version parallèle de PaVo et évaluons son intérêt. Pour tenir compte de l'irrégularité des applications, la charge de travail est équilibrée dynamiquement par vol de travail. Nous proposons de distribuer automatiquement les données en mémoire de manière à profiter des architectures hiérarchiques. Les tâches sont pré-assignées aux cœurs pour utiliser cette distribution et nous adaptons le moteur de vol pour favoriser des vols de tâches concernant des données proches en mémoire.
Cited by 0Open access
Apisit Rattanatranurak, Surin Kittitornkun · Journal of Mobile Multimedia · 2021
Mobile smartphones/laptops are becoming much more powerful in terms of core count and memory capacity. Demanding games and parallel applications/algorithms can hopefully take advantages of the hardware. Our parallel MSPSort algorithm is one of those examples. However, MSPSort can be optimized and fine tuned even further to achieve its highest capabilities. To evaluate the effectiveness of MSPSort, two Linux systems are quad core ARM Cortex-A72 and 24-core AMD ThreadRipper R9-2920. It has been demonstrated that MSPSort is comparable to the well-known parallel standard template library sorting functions, i.e. Balanced QuickSort and Multiway MergeSort in various aspects such as run time and memory requirements.
Cited by 1Open access
Surapong Taotiamton, Surin Kittitornkun · 2017
Sorting is one of the common problems in Computer Science and data analytics. This paper presents empirical results of parallel Hybrid Dual Pivot Sort (HDPSort) for multicore/manycore CPU systems. HDPSort makes use of both classic Lomuto and Hoare partioning algorithms with two pivot values in parallel. It is developed in C++ with OpenMP 3.0 or better. HDPSort is benchmarked with the sequential STLSort in terms of run time, instruction count and branch load. The Speedups of HDPSort are up to 3.02× and 2.79× faster than the STLSort on 8-core AMD FX-8320 and 4-core Intel i7-2600 Linux systems, respectively. An indepth analysis shows that HDPSort gains the Speedup by 300% over STLSort at the expense of 1%-4% of branch mispredictions.
Cited by 8
Stephen Molnar, Michael Cox, David Ellsworth et al. · IEEE Computer Graphics and Applications · 1994
We describe a classification scheme that we believe provides a more structured framework for reasoning about parallel rendering. The scheme is based on where the sort from object coordinates to screen coordinates occurs, which we believe is fundamental whenever both geometry processing and rasterization are performed in parallel. This classification scheme supports the analysis of computational and communication costs, and encompasses the bulk of current and proposed highly parallel renderers - both hardware and software. We begin by reviewing the standard feed-forward rendering pipeline, showing how different ways of parallelizing it lead to three classes of rendering algorithms. Next, we consider each of these classes in detail, analyzing their aggregate processing and communication costs, possible variations, and constraints they may impose on rendering applications. Finally, we use these analyses to compare the classes and identify when each is likely to be preferable.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
Cited by 540
Max Orhai, Andrew P. Black · PDXScholar (Portland State University) · 2012
We describe a parallel sort for a spatial computer that requires minimal communication. We show simulations of the sort in 1 and 2 dimensions. Presentation slides are located below in the Additional Files
Cited by 0Open access
Yannick Berens · Technischen Universität Darmstadt · 2017
As single-core performance of processors is not improving significantly anymore, the computer industry is moving towards increasing the amount of cores per processor or, in the case of large-scale computers, by installing more processors per computer. Applications now need to scale in accordance with the increase of parallel computing power and software developers need to take advantage of this movement. And parallel sorting algorithms present basic building blocks for many complex applications. In this thesis, we will validate the expected execution time complexities of five state-of-the-art parallel sorting algorithms, implemented in C using MPI for parallelization, by using a scalability validation framework based on Score-P and Extra-P. For each of the parallel sorting algorithms, we will create a performance model. These models will allow us to compare their scalability behaviour to the expectations. Furthermore, we will attempt to parallelize the local sorting step of the splitter-based parallel sorting algorithms via C++11 threads, OpenMP tasks, and CUDA acceleration. We construct the performance models, on which we base our evaluations, using uniformly randomly generated data. For most of the parallel sorting algorithms, we show that the given expectations match the created models. We will discuss any other discrepancies in detail.
Cited by 1Open access
Baudet, Ge╠ürard M., Stevenson, David · KiltHub Repository · 2018
Computer Science Department
Cited by 5Open access
Edson Tavares de Camargo, Elias P. Duarte · International Journal of Critical Computer-Based Systems · 2024
High performance computing (HPC) systems often require substantial resources, and can take up to several hours or days to execute. Upon a failure, it is important to loose as little computation as possible. In this work we present an algorithm-based fault tolerance (ABFT) strategy for hypercube-based parallel algorithms. The strategy assumes the virtual VCube topology, which has several logarithmic properties that are preserved even as nodes fail. The strategy guarantees that the algorithm does not halt even after up to (N - 1) nodes crash, in a system of N nodes. We use parallel sorting as a case study, describing how to make a fault-tolerant version of three parallel sorting algorithms: HyperQuickSort, QuickMerge and Bitonic Sort. The algorithms were implemented in MPI using ULMF to handle faults. Experimental results are presented showing the performance and robustness of the solution for sorting up to a billion integers in scenarios with faults.
Cited by 0
DeWitt, David J., Friedland, Dina B., Hsiao, David K. et al. · Minds at UW (University of Wisconsin) · 2012
Cited by 0Open access