Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 10,000 papers for “parallel data structures”

pylspack: Parallel algorithms and data structures for sketching, column subset selection, regression and leverage scores

Aleksandros Sobczyk, Efstratios Gallopoulos · arXiv (Cornell University) · 2022

We present parallel algorithms and data structures for three fundamental operations in Numerical Linear Algebra: (i) Gaussian and CountSketch random projections and their combination, (ii) computation of the Gram matrix and (iii) computation of the squared row norms of the product of two matrices, with a special focus on "tall-and-skinny" matrices, which arise in many applications. We provide a detailed analysis of the ubiquitous CountSketch transform and its combination with Gaussian random projections, accounting for memory requirements, computational complexity and workload balancing. We also demonstrate how these results can be applied to column subset selection, least squares regression and leverage scores computation. These tools have been implemented in pylspack, a publicly available Python package (https://github.com/IBM/pylspack) whose core is written in C++ and parallelized with OpenMP, and which is compatible with standard matrix data structures of SciPy and NumPy. Extensive numerical experiments indicate that the proposed algorithms scale well and significantly outperform existing libraries for tall-and-skinny matrices.

Cited by 0Open access

ScaleJoin: a deterministic, disjoint-parallel and skew-resilient stream join enabled by concurrent data structures

Vincenzo Gulisano, Ioannis Nikolakopoulos, Marina Papatriantafilou et al. · Chalmers Publication Library (Chalmers University of Technology) · 2014

Motivated by the inherently high computational complexity of stream joins, a considerable research effort has been devoted to their parallelization. Significant increase in processing throughput has been achieved by methods that utilize parallelization features enabled by the hardware. At the same time, challenging aspects such as deterministic processing, are only partially addressed.In this work we tackle the parallelization challenges of stream joins from a different design perspective: we study the points where data is exchanged and shared and by analyzing this, we identify the need for a balance between the amount of independent action that can be taken by processing entities (be it processor units or processing threads) and the synchronization needed to guarantee deterministic processing. We propose concurrent shared data objects that can satisfy these needs. At the same time, we provide algorithmic implementations of the objects that lead to a deterministic highly parallel stream join. In particular, we present ScaleJoin, a parallel stream join built upon ScaleGate, which is a new concurrent abstract data type acting at the articulation points maintaining the tuples being consumed and produced in a deterministic fashion regardless of the number of processing threads or the number of physical streams delivering them. ScaleJoin allows for the parallel execution of an arbitrary number of sequential stream joins while distributing the overall work among them without assuming any centralized coordinator. As we show in our evaluation, ScaleJoin does not only enforce deterministic processing while providing disjoint and skew-resilient parallelism, but also achieves higher processing throughput and lower processing latency than state of the art parallel stream joins such as CellJoin and Handshake.

Cited by 4

PASTEL A Parallel Stack-based Implementation of Eager Functional Programs with Lazy Data Structures (Extended Abstract)

Guido Hogen, Rita Loogen · 1992

1 Introduction In purely sequential implementations of functional programming languages a runtime stack is used for the control of the evaluation. Function calls lead to the allocation of control information (function blocks) on top of the stack. When the function call terminates, this information is removed and control is given back to the calling environment. In addition, a graph or heap structure is used for the representation of data structures, functional values (closures) and expressions not evaluated yet (suspensions), see e. g. [Johnsson 84], [Peyton Jones 87], [Koopman et al. 90], [Peyton Jones 91]. For parallel implementations, the efficient realisation of the runtime stack is one of the most important problems. The use of a global contiguous array of function blocks is no longer advisable, because each parallel task or process needs its own stack structure. Furthermore a suspension mechanism must be realized to keep the state of tasks which are waiting for the result of som...

Cited by 0

Massively Parallel Processing Database for Sequence and Graph Data Structures Applied to Rapid-Response Drug Repurposing

Christopher D. Rickett, Kristyn Maschhoff, Sreenivas R. Sukumar · 2020

In this paper, we present the application of a massively parallel-processing graph database for rapid-response drug repurposing. The novelty of our approach is that the scalable graph database is able to host a knowledge graph of medically relevant facts integrated from multiple knowledge sources and also act as a computational engine capable of in-database protein sequence analytics. We demonstrate the performance of the graph database on a real-world use-case to hypothesize cures for COVID-19, leveraging its built-in accelerated protein-sequence matching capabilities at unprecedented scale (to simultaneously handle data size and query latency requirements for interactive research). Based on supporting evidence from medical literature, we show that results generated by computing similarity of COVID-19 virus proteins across 4 million other open-science sequences and intelligently traversing over a 150 billion facts from open-science medical knowledge produces biologically insightful results. By presenting sample queries and extending application to use-cases beyond COVID-19, we demonstrate the use and value of the novel database for hypotheses generation in reducing the time-to-insight and increasing researcher productivity with interactivity.

Cited by 6Open access

Massively Parallel Algorithms and Data Structures for Extreme-Scale Matrix-Free Simulations on Hybrid Tetrahedral Grids

Kohl, Nils · 2024

Simulations are crucial to answer fundamental and practical questions of science and engineering, especially when theoretical assessments and experiments are insufficient, ineligible, or unfeasible. Unfortunately, analytical solutions of partial differential equations that model relevant physical phenomena are rarely known, motivating the development of efficient methods for their numerical approximation. Meaningful conclusions require high spatial and temporal resolution, leading to discrete problems that only efficient computational resources can handle. To demonstrate the challenges of the approximation of partial differential equations and their solutions at the extreme scale, this thesis utilizes the simulation of convection in the Earth’s mantle as an example application. Subject to buoyancy-driven creeping motion, the mantle material’s movement critically impacts the development of mountain ranges, mid-ocean ridges, earthquakes, and volcanism. The lack of suitable measurement techniques for the experimental quantification of its properties calls for the aid of computational methods. However, highly resolved mantle circulation simulations are an ambitious endeavor since discretizing the underlying mathematical model with a global resolution of 1km results in linear systems with trillions ($10^{12}$) of unknowns. Their sheer size requires the design of specialized solution algorithms and data structures. In particular, extreme-scalable, massively parallel, matrix-free methods of optimal space- and time-complexity are necessary. This thesis addresses those requirements via the concept of Hybrid Tetrahedral Grids. The fundamental data structure builds upon an unstructured coarse mesh approximating the domain geometry. Subsequent regular refinement leads to a hierarchical, block-structured, tetrahedral grid. It enables the implementation of efficient, massively parallel, matrix- free finite element methods, focusing on geometric multigrid to solve the arising linear systems. A significant contribution of this thesis is the development of the open-source software HyTeG, which realizes the features above in a modular, sustainable, and flexible framework for state-of-the-art and future supercomputers. Five core publications describe and study the architecture and implementation of relevant algorithms and data structures, strongly focusing on extreme scalability. The concrete contributions include the generalization of the core concepts to enable arbitrary finite element discretizations. Extreme-scale studies of matrix-free multigrid solvers for the Stokes system demonstrate the parallel performance subject to the notion of textbook multigrid efficiency, solving saddle point problems with about $3 \cdot 10^{12}$ unknowns on more than 140,000 processes. The thesis contributes a massively parallel particle-based Eulerian-Lagrangian method for the advection-diffusion equation and corresponding scalability experiments with more than $5 \cdot 10^{10}$ particles. Finally, it presents a massively parallel in-memory checkpointing scheme that enables efficient recovery after run time faults during simulations and scales to more than 260,000 processes. This thesis’ detailed description of the corresponding algorithms, data structures, dis- cretization techniques, communication patterns, and performance models, as well as the contribution to the software itself, build a sustainable foundation for the simulation of even more complex physical systems at the extreme scale. Those are essential to study, validate, and verify detailed, quantitative assertions related to various applications.

Cited by 0Open access

Canonical Set Theory with Applications from Parallel Addition of Multiple Inputs to Matrix Multiplication and Data Structures

Juan Pablo Ramírez · Qeios · 2023

Few questions that have resounded through the mind of the mathematician, as much as the simple question of describing the nature of a number. The longstanding consensus is that it does not matter which set theory is used to describe numbers. What matters is that it can be done. It is widely believed that the particular choice of a construction for natural and real numbers is irrelevant for the rest of mathematics. A set theory is proposed as a canonical theory that yields transparent proofs in fundamental areas of mathematics including group theory, discrete mathematics, analysis, data types, and new results tying these areas and addressing Hilbert's 24th (twenty-fourth) Problem and Benacerraf's Identification Problem. Applications to computer science are discussed and these include a linearly-scaleable circuit that serves for parallel addition and multiplication of scalars, vectors and matrices, with wide implications for Area-Specific Integrated Circuits (ASICs) used in CGI, Neural Networks and AI training, Digital Signal Processing, among other applications that depend on fast and low-powered vector operations. This low-power In-Situ (In-Memory) computing architecture, based on a patent-pending Simple and Linear Fast Adder (SLFA), is a direct consequence of the proposed set theory. Algebraic invariants are also described with results bringing together set theory, discrete mathematics, number theory and algebraic structures. A canonical block form is defined for the Cayley table of finite groups, in terms of a numeric representation of groups. Automorphisms, and the minimal independent system of equations that define the group are given by the block form, among other information regarding groups' internal and external structure. The proposed construction of natural numbers is generalized to provide a simple and transparent construction of the continuum of real numbers, with a fast approximation for the numeric derivative that can be implemented with the SLFA. Infinite data structures are defined in the most efficient way with the smallest possible data type. A countable sequence of real numbers is coded in a single real number, and an infinite \(\infty\times\infty\) real-valued matrix is also coded with a single real number. A real function is coded in a set of real numbers, and a countable sequence of real functions is also coded in a set of real numbers. These codings are meaningful and computable. Mathematical objects of all types are well assigned to tree structures in a proposed hierarchy of types.

Cited by 0Open access

Compile-time analyses and run-time support for a higher order, distributed data-structures based, parallel language

Pradeep Varma · 1996

Our thesis provides new compile-time analyses, and new run-time support methods for a statically scoped, distributed data-structures based, parallel dialect of Lisp. The language is formed by embedding first-class tuplespaces in a higher-order subset of Scheme that also supports list data structures and assignments. The compile-time methods include a control flow analyser called the Pundit, which provides a new basis for the static analysis of parallel programs. The Pundit identifies properties such as lock-freeness, read-only regions, and tuplespace-operation collections in a language setting that includes features such as: parallelism, non-determinism, dynamic task creation, shared content-addressed memories, explicit synchronisation, list data structures, assignments, and higher-order functions. The thesis provides the first formal model of content-addressing in tuplespaces. Using the model, the thesis provides the first tuplespace analyser that fully resolves static tuplespace partitionings, efficiently. The thesis provides a new, highly-concurrent kernel for tuplespaces that permits simultaneous reads and writes to a kernel data structure. The kernel relies on atomic reads and writes to memory, the use of spin locks for explicit serialisation, and the use of automatic space management to recycle deleted data. The kernel is optimisable; using the properties proven by the Pundit for a program, the kernel allows certain lock counts in some cases to be reduced to the minimum permissible. The thesis also provides new methods of generation and specialisation of code for accessing tuplespace objects. The specialisations include: dispatch simplification, dispatch elimination, and specialisation of matching code. The methods provided by the thesis have been implemented. The effectiveness of the methods is demonstrated by experiments that measure the implementation's performance on a suite of fine-grain coordinated, benchmark programs using a Silicon Graphics, Power Series, cache-coherent multiprocessor. The experiments show that the cost of kernel locks is often dominant in a computation, which, the methods are able to effectively eliminate. The experiments also show that the simplification and elimination of tuplespace dispatches effectively removes the often dominating code-size cost from the object codes of the benchmarks.

Cited by 6

Efficient Run-time Support For Global View Programming of Linked Data Structures on Distributed Memory Parallel Systems

Larkins, Darrell Brian · OhioLink ETD Center (Ohio Library and Information Network) · 2010

Developing high-performance parallel applications that use linked data structures on distributed-memory clusters is challenging.Many scientific applications use algorithms based on linked data structures like trees and graphs.These structures are especially useful in representing relationships between data which may not be known until runtime or may otherwise evolve during the course of a computation.Methods such as n-body simulation, Fast Multipole Methods (FMM), and multiresolution analysis all use trees to represent a fixed space populated by a dynamic distribution of elements.Other problem domains, such as data mining, use both trees and graphs to summarize large input datasets into a set of relationships that capture the information in a form that lends itself to efficient mining.This dissertation first describes a runtime system that provides a programming interface to a global address space representation of generalized distributed linked data structures, while providing scalable performance on distributed memory computing systems.This system, the Global Chunk Layer (GCL), provides data access primitives at the element level, but takes advantage of coarse-grained data movement to enhance locality and improve communication efficiency.The key benefits of using the GCL system include efficient shared-memory style programming of distributed Without the support and care of many people that I've met throughout my life, this endeavor wouldn't have been possible.First and foremost, I thank my advisor, P. Sadayappan.He has supported my growth and development throughout this entire process.As a mentor and role-model, I have learned from his example as an excellent researcher and teacher.Other faculty at Ohio State have been influential in the way that I have come to think and reason about challenges that I face.Nasko Rountev, who has helped me to understand the discipline and process of research.Paul Sivilotti, who has forged many neural pathways regarding formal reasoning.Srini Parthasarathy, for your valuable insights about global view distributed programming

Cited by 0Open access

Algorithms and data structures for matrix-free finite element operators\n with MPI-parallel sparse multi-vectors

Denis Davydov, Martin Kronbichler · arXiv (Cornell University) · 2019

Traditional solution approaches for problems in quantum mechanics scale as\n$\\mathcal O(M^3)$, where $M$ is the number of electrons. Various methods have\nbeen proposed to address this issue and obtain linear scaling $\\mathcal O(M)$.\nOne promising formulation is the direct minimization of energy. Such methods\ntake advantage of physical localization of the solution, namely that the\nsolution can be sought in terms of non-orthogonal orbitals with local support.\nIn this work a numerically efficient implementation of sparse parallel vectors\nwithin the open-source finite element library deal.II is proposed. The main\nalgorithmic ingredient is the matrix-free evaluation of the Hamiltonian\noperator by cell-wise quadrature. Based on an a-priori chosen support for each\nvector we develop algorithms and data structures to perform (i) matrix-free\nsparse matrix multivector products (SpMM), (ii) the projection of an operator\nonto a sparse sub-space (inner products), and (iii) post-multiplication of a\nsparse multivector with a square matrix. The node-level performance is analyzed\nusing a roofline model. Our matrix-free implementation of finite element\noperators with sparse multivectors achieves the performance of 157 GFlop/s on\nIntel Cascade Lake architecture. Strong and weak scaling results are reported\nfor a typical benchmark problem using quadratic and quartic finite element\nbases.\n

Cited by 0Open access

A Framework for Concurrency in Numerical Simulations Using Lock Free Data Structures: The Graph Parallel Architecture GraPA

Peter Klein, Dimo Maleshkov, Dimitar Asenov · 2008

The development of numerical simulation software tools for the solution of real-world problems usually calls for domain experts in modeling. The GraPA framework, as an abstraction layer on top of hardware characteristics, supports modelers in two respects: one is the built-in support for co-processing of multiple models and the other is the generically delivered high performance achieved by implementing concurrency features of multicore and distributed memory architectures. Technically, GraPA is designed as a C++ template framework, where the modeler`s data structures and algorithms instantiate the framework. Using this approach, we handle parallel processing of lock-free data structures and message passing transparently to the modelers. In this paper, we report on the status of the implementation of GraPA and on its performance characteristics.

Cited by 3

Segmentation of Tree-Like Data Structures and Their Parallel Processing in Authentication Methods Based on Block Coupling Encoding

M. О. Tanygin, Alina A. Chesnokova · Proceedings of Southwest State University · 2024

Purpose of reseach. In the tasks of authenticating groups of messages encoded in the mode of chaining blocks, there is a need for the formation and processing of specific tree-like structures. The contents of such structures, in addition to information about the placement of data in the internal memory of the calculators, describes the relative location of messages in the data stream between subscribers of a peer-to-peer network. This information is necessary to isolate a structured set from the entire message stream to the receiver, for which its source is uniquely determined. Using approaches to segmentation of tree structures allows you to parallelize the processes of adding elements to it and searching for areas corresponding to an authentication error. Methods . The division of the tree structure into areas subject to modification and areas for analysis is based on a metric dynamically formed from message authentication codes – the position of a specific message in a structured set of messages transmitted from the source to the receiver. The value of this metric determines the distance from the root of the tree, which defines the boundary between the two named areas Results . By isolating the modified and analyzed sections of the tree structure, races of processes implementing independent algorithms for working with it are excluded. The possibility of detecting authentication errors before receiving the last message in a structured set of messages is shown. As a result, there is no need to transmit those group messages that were supposed to be sent after the error was detected. Formulas for estimating the average transmission time of multiple messages with sequential and parallel implementation of procedures for the formation and processing of a tree structure containing descriptors of incoming messages to the receiver are given. Conclusion . The paper shows that the parallel implementation of algorithms for adding elements to the tree structure and the algorithm for searching for areas corresponding to an error reduces the average transmission time of a group of messages by 5-12% compared with the sequential implementation of these algorithms. This reduces the load on the communication channel for the target class of systems using block coupling encoding for authentication.

Cited by 0Open access