GithubHelp home page GithubHelp logo

tnas / reordering-library Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 5.0 69.12 MB

Parallel Algorithms for Sparse Matrices Reordering

C 15.67% Fortran 82.20% Makefile 0.42% CMake 0.14% C++ 1.52% Shell 0.05%
parallel algorithms sparse matrix reordering

reordering-library's Introduction

Non-Specultive Data-Driven Parallelizations of Irregular Algorithms for Sparse Matrices Reordering

This project aims the parallelization of some algorithms for the bandwidth and wavefront reduction problems. The related algorithms are:

  • Reverse Cuthill McKee - RCM (Bandwidth Reduction)
  • Sloan (Wavefront Reduction)

Dependencies

On linux, execute the command to install libraries used by the program:

sudo apt-get install cmake libboost-all-dev gfortran libblas-dev

Running

./reordering-library -m <path of .mtx file> -a <algorithm> -p <number of threads> -b <percent of chunk>
<algorithm>
  • 0: Serial RCM
  • 1: Serial Sloan
  • 2: HSL RCM
  • 3: HSL Spectral
  • 4: HSL Sloan
  • 5: Unordered RCM
  • 6: Leveled RCM
  • 7: Bucket RCM
  • 8: Relaxed Order Sloan
  • 9: Boost RCM
  • 10: Boost Sloan
  • 11: Logical Bag Sloan
  • 12: Shrinked RCM
<percent of chunk>
  • It is recommended the value of 0.5.

Example:

./reordering-library -m ./Matrices/rail_5177.mtx -a 5 -p 4 -b .5
  • In this example, the matrix rail_5177 is processed by the Unordered RCM algorithm. It is executed with 4 threads.

Profiling

valgrind --leak-check=yes myprog arg1 arg2
  • For memory check, Valgrind has been used.
valgrind --tool=callgrind program [program_options]
  • For performance profiling, Callgrind has been used.
kcachegrind callgrind.out.XXX
  • For graphical performance visualization, KCachegrind has been used. The file callgrind.out.XXX is yielded by Callgrind, and XXX is the process identifier.

reordering-library's People

Contributors

labotim-ufes avatar tnas avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

reordering-library's Issues

Shell script to tests preparation

The shell script must contemplate:

  • Download (wget) of matrix files to be reordered
  • A command to untar and gunzip multiple files (ls *.tar | xargs -i tar xf {})
  • Commands to move utar files from the unzipped folder to current folder
  • Command to delete unzipped folders

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.