301. Integration and exploitation of intra-routine malleability in BLIS
- Author
-
Universitat Politècnica de València. Departamento de Informática de Sistemas y Computadores - Departament d'Informàtica de Sistemes i Computadors, Comunidad de Madrid, Agencia Estatal de Investigación, European Regional Development Fund, Ministerio de Economía y Competitividad, Rodríguez-Sánchez, Rafael, Igual, Francisco D., Quintana-Ortí, Enrique S., Universitat Politècnica de València. Departamento de Informática de Sistemas y Computadores - Departament d'Informàtica de Sistemes i Computadors, Comunidad de Madrid, Agencia Estatal de Investigación, European Regional Development Fund, Ministerio de Economía y Competitividad, Rodríguez-Sánchez, Rafael, Igual, Francisco D., and Quintana-Ortí, Enrique S.
- Abstract
[EN] Malleability is a property of certain applications (or tasks) that, given an external request or autonomously, can accommodate a dynamic modification of the degree of parallelism being exploited at runtime. Malleability improves resource usage (core occupation) on modern multicore architectures for applications that exhibit irregular and divergent execution paths and heavily depend on the underlying library performance to attain high performance. The integration of malleability within high-performance instances of the Basic Linear Algebra Subprograms (BLAS) is nonexistent, and, in addition, it is difficult to attain given the rigidity of current application programming interfaces (APIs). In this paper, we overcome these issues presenting the integration of a malleability mechanism within BLIS, a high-performance and portable framework to implement BLAS-like operations. For this purpose, we leverage low-level (yet simple) APIs to integrate on-demand malleability across all Level-3 BLAS routines, and we demonstrate the performance benefits of this approach by means of a higher-level dense matrix operation: the LU factorization with partial pivoting and look-ahead
- Published
- 2020