Hybrid Parallel Algorithm of General Sparse Matrix Multiplication*

Abstract

稀疏矩阵相乘是在科学和工程计算中有广泛应用,是科学计算中的一种常用的基本运算.但也面临着数据量大,非零值分布不规则,负载难均衡,计算结果矩阵的列指数无规则分布等问题.通过矩阵分块、优化数据传输、负载均衡、改良并行快速排序方法来解决上述问题,提高了计算效率.在多线程下计算速度比商业软件Intel MKL(Intel Math Kernel Library)平均提高56%.同时,还通过MPI+OpenMP进行混合并行优化,在共享存储系统上两者有类似的计算速度.Sparse matrix multiplication is widely used in scientific and engineering computations. It is a basic operation in scientific computation, but it faces many difficulties such as large data set, irregular distribution of non-zero values, load unbalancing and irregular distribution of column index of the resulting matrix. This paper optimizes matrix partitioning, data communication, load balancing and parallel sort methods to tackle the above problems. The computing speed of the algorithm improves 56% in average at multithread over commercial software Intel MKL (Intel Math Kernel Library). This paper further develops MPI+OpenMP hybrid parallel algorithm for multiprocess that achieves similar efficiency on shared memory system

    Similar works