ACM SIGPLAN Notices · 2010 · 13 citations · 15 references
ComputingComputer EngineeringComputer ScienceCompilersParallel AlgorithmsParallel ComputingData ParallelismParallel Algorithm DesignParallel ArchitecturesParallel Computer ArchitectureParallel Computing SystemsParallel Runtime SystemsOpenmpParallelizationRuntime Systems For Parallelism
Applications composed of multiple parallel libraries perform poorly when those libraries interfere with one another by obliviously using the same physical cores, leading to destructive resource oversubscription. This paper presents the design and implementation of Lithe , a low-level substrate that provides the basic primitives and a standard interface for composing parallel codes efficiently. Lithe can be inserted underneath the runtimes of legacy parallel libraries to provide bolt-on composability without needing to change existing application code. Lithe can also serve as the foundation for building new parallel abstractions and libraries that automatically interoperate with one another. In this paper, we show versions of Threading Building Blocks (TBB) and OpenMP perform competitively with their original implementations when ported to Lithe. Furthermore, for two applications composed of multiple parallel libraries, we show that leveraging our substrate outperforms their original, even expertly tuned, implementations.
15
Basic Linear Algebra Subprograms for Fortran Usage
C. L. Lawson, Richard Hanson, David R. Kincaid et al. · ACM Transactions on Mathematical Software · 1979 · 1.6K citations · Full text
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul et al. · 1995 · 1K citations · Full text
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska et al. · 1991 · 180 citations · Full text