
arXiv: 1303.2285
Computation of a signal's estimated covariance matrix is an important building block in signal processing, e.g., for spectral estimation. Each matrix element is a sum of products of elements in the input matrix taken over a sliding window. Any given product contributes to multiple output elements, thereby complicating parallelization. We present a novel algorithm that attains very high parallelism without repeating multiplications or requiring inter-core synchronization. Key to this is the assignment to each core of distinct diagonal segments of the output matrix, selected such that no multiplications need to be repeated yet only one core writes to any given output-matrix element, and exploitation of a shared memory (including L1 cache) that obviates the need for a corresponding awkward partitioning of the memory among cores. Implementation on Plurality's HyperCore shared-memory many-core architecture demonstrates linear speedup of up to 64 cores and speedups of ~85X for 128 cores. On an x86 system we demonstrate that the new algorithm has consider parallel speedups but also show that a sequential implementation of the new algorithm outperforms the parallel implementation of the baseline approach. On a quad-core x86 system, the new algorithm is 20X faster than sequential baseline and 5X than parallel implementation of the baseline.
FOS: Computer and information sciences, B.3.2; D.1.3; F.2.1, D.1.3, Discrete Mathematics (cs.DM), Computer Science - Data Structures and Algorithms, B.3.2, Data Structures and Algorithms (cs.DS), F.2.1, Computer Science - Discrete Mathematics
FOS: Computer and information sciences, B.3.2; D.1.3; F.2.1, D.1.3, Discrete Mathematics (cs.DM), Computer Science - Data Structures and Algorithms, B.3.2, Data Structures and Algorithms (cs.DS), F.2.1, Computer Science - Discrete Mathematics
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
