Parallel Tiled QR Factorization for Multicore Architectures
Alfredo Buttari (Department of Electrical Engineering, Computer, Science, University Tennessee, Knoxville, Tennessee), Julien Langou, (Department of Mathematical Sciences, University of Colorado at Denver and, Health Sciences Center, Colorado)

TL;DR
This paper introduces a parallel tiled QR factorization algorithm optimized for multicore architectures, enabling dynamic task scheduling and improved performance over traditional LAPACK methods.
Contribution
It presents a new task-based QR factorization algorithm that exploits fine-grain parallelism and dynamic scheduling for multicore processors.
Findings
Achieves better performance than LAPACK QR by exploiting task-level parallelism.
Enables out-of-order execution to hide sequential tasks.
Demonstrates scalability on multicore systems.
Abstract
As multicore systems continue to gain ground in the High Performance Computing world, linear algebra algorithms have to be reformulated or new algorithms have to be developed in order to take advantage of the architectural features on these new processors. Fine grain parallelism becomes a major requirement and introduces the necessity of loose synchronization in the parallel execution of an operation. This paper presents an algorithm for the QR factorization where the operations can be represented as a sequence of small tasks that operate on square blocks of data. These tasks can be dynamically scheduled for execution based on the dependencies among them and on the availability of computational resources. This may result in an out of order execution of the tasks which will completely hide the presence of intrinsically sequential tasks in the factorization. Performance comparisons are…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
