cusplibrary/cusplibrary — pull request #32 by mwiesenberger (2013-11-04 11:10:42+00:00)
Title: Openmp

This branch is aimed at making the OpenMP functionality provided by the latest thrust version available to cusp and also parallelize cusps own functions where it is appropriate.
So far three files have been changed, namely the host versions of csr.h and spmv.h and the dispatch/multiply.h
We assume that the user either uses THRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP
or THRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_OMP and compiles with the -fopenmp flag.
In the first case we redirect any device multiplication to the host with precompiler switches so that a compilation without nvcc is possible.
In spmv.h only one openMP pragma has been added to parallelize csr_spmv!
csr.h has been rewritten to accelerate the csr version of spmm! Initial tests with up to 4 threads show speeup of 2-3. The prize is that explicit zeros are not removed from the result.