A New Generation of Task-Parallel Algorithms for Matrix Inversion in Many-Threaded CPUs
Sandra Catalán, Francisco D. Igual, Rafael Rodríguez‐Sánchez, José R. Herrero, Enrique S. Quintana–Ort́ı · 2021
We take advantage of the new tasking features in OpenMP to propose advanced task-parallel algorithms for the inversion of dense matrices via Gauss-Jordan elimination. Our algorithms perform a partitioning of the matrix operand into two levels of tasks: The matrix is first divided vertically, by column blocks (or panels), in order to accommodate the standard partial pivoting scheme that ensures the numerical stability of the method. In addition, depending on the particular kernel to be applied, each panel is partitioned either horizontally by row blocks (tiles) or vertically by μ-panels (of columns), in order to extract sufficient task parallelism to feed a many-threaded general purpose processor (CPU).