English
Related papers

Related papers: A User-Friendly Hybrid Sparse Matrix Class in C++

200 papers

The matrices used in many computational settings are naturally sparse, holding a small percentage of nonzero elements. Storing such matrices in specialized sparse formats enables algorithms that avoid wasting computation on zeros,…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-02-13 Pratyush Das , Amirhossein Basareh , Adhitha Dias , Artem Pelenitsyn , Kirshanthan Sundararajah , Milind Kulkarni , Ben Delaware

Quantum computation offers a promising alternative to classical computing methods in many areas of numerical science, with algorithms that make use of the unique way in which quantum computers store and manipulate data often achieving…

Quantum Physics · Physics 2022-07-19 Christopher D. Phillips , Vladimir I. Okhmatovski

Sparse modeling is a powerful framework for data analysis and processing. Traditionally, encoding in this framework is performed by solving an L1-regularized linear regression problem, commonly referred to as Lasso or Basis Pursuit. In this…

Machine Learning · Statistics 2015-05-19 Pablo Sprechmann , Ignacio Ramírez , Guillermo Sapiro , Yonina Eldar

Language-orientated programming promises to elevate programmer productivity through increased abstrac- tion capabilities. Structural programming environments provide apparatus to reduce the difficulties with syntax. The language workbench,…

Programming Languages · Computer Science 2014-03-18 Gavin Wood

We present Matrix Distributed Processing, a C++ library for fast development of efficient parallel algorithms. MDP is based on MPI and consists of a collection of C++ classes and functions such as lattice, site and field. Once an algorithm…

Distributed, Parallel, and Cluster Computing · Computer Science 2007-05-23 Massimo Di Pierro

[abridged] Context: Multidimensional arrays are used by many different algorithms. As such, indexing and broadcasting complex operations over multidimensional arrays are ubiquitous tasks and can be performance limiting. Inquiry:…

Mathematical Software · Computer Science 2017-04-04 Florian Heyl , Oliver Serang

We develop and implement in this paper a fast sparse assembly algorithm, the fundamental operation which creates a compressed matrix from raw index data. Since it is often a quite demanding and sometimes critical operation, it is of…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-04-28 Stefan Engblom , Dimitar Lukarski

Multi-dimensional arrays are among the most fundamental and most useful data structures of all. In C++, excellent template libraries exist for arrays whose dimension is fixed at runtime. Arrays whose dimension can change at runtime have…

Data Structures and Algorithms · Computer Science 2010-08-18 Bjoern Andres , Ullrich Koethe , Thorben Kroeger , Fred A. Hamprecht

Object-oriented programming languages such as Java and Objective C have become popular for implementing agent-based and other object-based simulations since objects in those languages can {\em reflect} (i.e. make runtime queries of an…

Mathematical Software · Computer Science 2008-10-22 Russell K. Standish , Duraid Madina

In this article we present a new format for storing sparse matrices. The format is designed to perform well mainly on the GPU devices. We present its implementation in CUDA. The performance has been tested on 1,600 different types of…

Distributed, Parallel, and Cluster Computing · Computer Science 2010-12-13 Tomáš Oberhuber , Atsushi Suzuki , Jan Vacata

Recent technological advancements have led to the rapid generation of high-throughput biological data, which can be used to address novel scientific questions in broad areas of research. These data can be thought of as a large matrix with…

Computation · Statistics 2021-03-01 Jane W. Liang , Saunak Sen

This paper explores the relationship between C++ templates and partial evaluation. Templates were designed to support generic programming, but unintentionally provided the ability to perform compile-time computations and code generation.…

Programming Languages · Computer Science 2007-05-23 Todd L. Veldhuizen

We implement two novel algorithms for sparse-matrix dense-matrix multiplication (SpMM) on the GPU. Our algorithms expect the sparse input in the popular compressed-sparse-row (CSR) format and thus do not require expensive format conversion.…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-06-13 Carl Yang , Aydin Buluc , John D. Owens

The development of the mlpack C++ machine learning library (http://www.mlpack.org/) has required the design and implementation of a flexible, robust optimization system that is able to solve the types of arbitrary optimization problems that…

Mathematical Software · Computer Science 2017-11-20 Ryan R. Curtin , Shikhar Bhardwaj , Marcus Edel , Yannis Mentekidis

Multilevel/multigrid methods is one of the most popular approaches for solving a large sparse linear system of equations, typically, arising from the discretization of partial differential equations. One critical step in the…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-05-23 Fande Kong

We overview the ensmallen numerical optimization library, which provides a flexible C++ framework for mathematical optimization of user-supplied objective functions. Many types of objective functions are supported, including general,…

Mathematical Software · Computer Science 2024-02-12 Ryan R. Curtin , Marcus Edel , Rahul Ganesh Prabhu , Suryoday Basak , Zhihao Lou , Conrad Sanderson

This article discusses an efficient implementation of tensors of arbitrary rank by using some of the idioms introduced by the recently published C++ ISO Standard (C++11). With the aims at providing a basic building block for…

Mathematical Software · Computer Science 2014-06-02 Alejandro M. Aragón

The performance gap between CPU and memory widens continuously. Choosing the best memory layout for each hardware architecture is increasingly important as more and more programs become memory bound. For portable codes that run across…

We present new adaptive format for storing sparse matrices on GPU. We compare it with several other formats including CUSPARSE which is today probably the best choice for processing of sparse matrices on GPU in CUDA. Contrary to CUSPARSE…

Distributed, Parallel, and Cluster Computing · Computer Science 2012-03-27 Martin Heller , Tomáš Oberhuber

In many real-world problems, we are dealing with collections of high-dimensional data, such as images, videos, text and web documents, DNA microarray data, and more. Often, high-dimensional data lie close to low-dimensional structures…

Computer Vision and Pattern Recognition · Computer Science 2013-02-06 Ehsan Elhamifar , Rene Vidal