2009 · 358 citations · 32 references
EngineeringData-level ParallelismParallel SoftwareProgram AnalysisParallelizing CompilerComputer EngineeringComputer ArchitectureHigh Performance AlgorithmsComputational ComplexityParallel ImplementationParallel ProgrammingComputer ScienceCompilersCombinatorial OptimizationParallel ComputingDifferent AlgorithmsOptimizing CompilerProgramming Language Techniques
It is often impossible to obtain a one-size-fits-all solution for high performance algorithms when considering different choices for data distributions, parallelism, transformations, and blocking. The best solution to these choices is often tightly coupled to different architectures, problem sizes, data, and available system resources. In some cases, completely different algorithms may provide the best performance. Current compiler and programming language techniques are able to change some of these parameters, but today there is no simple way for the programmer to express or the compiler to choose different algorithms to handle different parts of the data. Existing solutions normally can handle only coarse-grained, library level selections or hand coded cutoffs between base cases and recursive cases.
32
The Design and Implementation of FFTW3
Matteo Frigo, Steven G. Johnson · Proceedings of the IEEE · 2005 · 5K citations
Samuel Williams, Andrew Waterman, David A. Patterson · Communications of the ACM · 2009 · 2.3K citations · Full text
Performance Portability, Roofline Model Offers, Engineering +14
Applied numerical linear algebra
Choice Reviews Online · 1998 · 2.2K citations
Numerical Analysis, Spectral Theory, Numerical Computation +11