2003 · 12 citations · 13 references
ComputingComputer EngineeringComputer ScienceMessage PassingParallel AlgorithmsParallel ComputingCachingDistributed Memory SystemsMatrix ComputationMemory HierarchyParallel ArchitecturesParallel Computing SystemsDistributed MemoryDistributed Memory AlgorithmsMatrix MultiplicationMemory Hierarchy AlgorithmsMemory Hierarchy ModelingMemory Hierarchy PerformanceParallel Matrix ComputationShared-memory Algorithms
In modern clustering environments where the memory hierarchy has many layers (distributed memory, shared memory layer, cache, ...), an important question is how to fully utilize all available resources and identify the most dominant layer in certain computation. When combining algorithms on all layers together, what would be the best method to get the best performance out of all the resources we have? The mixed mode programming model that uses thread programming on the shared memory layer and message passing programming on the distributed memory layer is a method that many researchers are using to utilize the memory resources. We take an algorithmic approach that uses matrix multiplication as a tool to show how cache algorithms affect the performance of both shared memory and distributed memory algorithms. We show that with good underlying cache algorithm, overall performance is stable. When the underlying cache algorithm is bad, superlinear speedup may occur and increasing number of threads may also improve performance.
13
Gaussian elimination is not optimal
Volker Strassen · Numerische Mathematik · 1969 · 2.5K citations
Matteo Frigo, Charles E. Leiserson, Harald Prokop et al. · 2003 · 807 citations
Matteo Frigo, Charles E. Leiserson, Harald Prokop et al. · ACM Transactions on Algorithms · 2012 · 190 citations
Nonlinear array layouts for hierarchical memory systems
Siddhartha Chatterjee, Vibhor Jain, Alvin R. Lebeck et al. · 1999 · 163 citations · Full text