-
Notifications
You must be signed in to change notification settings - Fork 1
Example program for computing a sparse matrix-vector multiplication with a matrix in the compressed sparse row (CSR) format.
License
jamtrott/csrspmv
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is the README file for csrspmv, a program for benchmarking sparse marix-vector multiplication (SpMV) for matrices in the compressed sparse row (CSR) format. Copyright (C) 2023 James D. Trotter Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Building -------- The `csrspmv' program can be built with `make'. Compilation and linking may be configured through the environment variable `CC', which is used to choose a compiler, and `CFLAGS' and `LDFLAGS', which are used to set compiler flags and linker flags, respectively. Here is an example: make CC=gcc CFLAGS="-O3 -march=native" Usage ----- The `csrspmv' program is used to load a matrix from a file in Matrix Market format (see https://math.nist.gov/MatrixMarket/formats.html), convert it to a compressed sparse row (CSR) representation, and multiply it with a dense vector. The vector can also be loaded from a file in the Matrix Market format. Otherwise, a vector of all ones is used. The vector resulting from the multiplication can also be written to a file in the Matrix Market format. Since OpenMP is used for shared-memory parallel computations, the environment variable `OMP_NUM_THREADS' can be set to control the number of threads that are used. In addition, `OMP_PROC_BIND' can be set to bind threads to particular cores. If the option `--verbose' is supplied, then some information about the matrix is printed, as well as the information about the matrix-vector multiplication, such as the time spent and number of arithmetic operations performed. Here is an example of the output: ./csrspmv --verbose test.mtx matrix_market_read: 0.000128 seconds matrix object coordinate format real field general symmetry 4 rows 5 columns 7 nonzeros csr_matrix_int32_from_matrix_market: 0.018245 seconds 4 rows 5 columns 7 nonzeros csr_matrix_int32_spmv: 0.000089 seconds 1 multiplications 14 flops Copying ------- csrspmv is free software. See the file COPYING for copying conditions.
About
Example program for computing a sparse matrix-vector multiplication with a matrix in the compressed sparse row (CSR) format.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published