On the evaluation of matrix polynomials using several GPGPUs

Computing a matrix polynomial is the basic process in the calculation of functions of matrices by the Taylor method. One of the most efficient techniques for computing matrix polynomials is based on the Paterson– Stockmeyer method. Inspired by this method, we propose in this work a recursive algorit...

ver descrição completa

Detalhes bibliográficos
Autores: Alonso-Jordá, Pedro|||0000-0002-6882-6592, Peinado Pinilla, Jesús|||0000-0002-9048-5106, Ibáñez González, Jacinto Javier|||0000-0002-6912-4453, Sastre, Jorge|||0000-0002-8612-6717, Boratto, Murilo
Formato: informe técnico
Fecha de publicación:2014
País:España
Recursos:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/39615
Acesso em linha:https://riunet.upv.es/handle/10251/39615
Access Level:acceso abierto
Palavra-chave:Matlab
CUBLAS
GPGPU
Function of matrices
Matrix polynomial
CUDA
ARQUITECTURA Y TECNOLOGIA DE COMPUTADORES
Descrição
Resumo:Computing a matrix polynomial is the basic process in the calculation of functions of matrices by the Taylor method. One of the most efficient techniques for computing matrix polynomials is based on the Paterson– Stockmeyer method. Inspired by this method, we propose in this work a recursive algorithm and an efficient implementation that exploit the heterogeneous nature of current computers to evaluate large scale matrix polynomials is the shortest possible time. Heterogeneous computers are those which have any type of hardware accelerator(s). For these type of computers, we propose a method to easily implement efficient algorithms that use several hardware accelerators in parallel. This methodology is built on the last versions of the OpenMP standard for implementing paral- lel algorithms on shared memory multiprocessors. In particular, we have used NVIDIA© cards, but the proposal can be readily generalized to other type of devices acting as coprocessors. In addition, we provide a high-level interface in Matlab© to be used by any researcher who is not aware of parallelism nor of other programming issues.