Título:
|
Desenvolupament de codis d'àlgebra lineal amb PyCOMPSs
|
Autor/a:
|
Amela Milian, Ramon
|
Otros autores:
|
Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors; Barcelona Supercomputing Centre; Badia Sala, Rosa Maria |
Abstract:
|
Arrel de l’interès per ser capaç d’utilitzar les llibreries de NumPy amb MKL
en entorns distribuïts, va sorgir una col·laboració entre Intel
R i el departament
de Workflows and distributed computing del BSC.
Aquest treball explora un seguit de possibles línies d’investigació que tenen
per objectiu millorar el rendiment i facilitar la utilització simultània de MKL
a través de NumPy i PyCOMPSs per a realitzar operacions d’àlgebra lineal
en entorns distribuïts.
Pel que fa als algoritmes matemàtics utilitzats, en una primera instància es
busquen solucions per aconseguir un rendiment màxim de l’algoritme de multiplicació
de matrius mitjançant la descomposició de les mateixes en blocs
quadrats. A continuació, s’ha adaptat el codi ja present al BSC per calcular
la factorització de Cholesky amb inicialització distribuïda i augmentar-ne el
paral·lelisme. L’última tasca realitzada en aquest apartat consisteix en la implementació
d’un algoritme per al càlcul de la descomposició QR mitjançant
la descomposició en matrius quadrades i inicialització distribuïda.
Tenint en compte la importància de la planificació per obtenir un bon rendiment
de les aplicacions, a continuació s’ha procedit a fer una refactorització
del planificador per introduir-hi un conjunt de noves polítiques. Concretament,
s’han afegit planificadors que segueixen una política FIFO, una LIFO i
una FIFO modificada per prioritzar la localitat de les dades i minimitzar així
la quantitat de transferències.
Finalment, s’ha dissenyat i implementat una llibreria que utilitza un sistema
de wrapping sobre la llibreria NumPy que permet la introducció progressiva
dels algoritmes distribuïts sense la necessitat d’implementar-la tota de cop.
En tot moment es garanteix, però, que l’usuari podrà accedir a totes les funcionalitats
de la llibreria original. |
Abstract:
|
A raíz del interés por ser capaces de utilitzar las librerias de NumPy con MKL
en entornos distribuidos, surgió una colaboración entre Intel
R i el departamento
de Workflows and distributed computing del BSC.
Este trabajo explora un conjunto de posibles lineas de investigación que tienen
por objetivo mejorar el rendimiento y facilitar la utilización simultánea de
MKL a través de NumPy i PyCOMPSs para realizar operaciones de álgebra
lineal en entornos distribuidos.
En lo que afecta a los algoritmos matemáticos utilizados, en una primera
instancia se buscan soluciones para conseguir un rendimiento máximo de la
multiplicación de matrices mediante la descomposicion de las mismas en bloques
cuadrados. A continuación, se ha adaptado el código ya existente en el
BSC para calcular la factorización de Cholesky con la inicialización distribuida
i aumentar su grado de paralelismo. La última tarea realizada consiste en
la implementación de un algoritmo para el cálculo de la descomposición QR
mediante la descomposición de la matriz en bloques cuadrados realizando la
inicialización de forma distribuida.
Considerando el impacto de la planificación para obtener un buen rendimiento
de las aplicaciones, a continuación se ha procedido a realizar una refactorización
del planificador con el objetivo de introducir nuevas políticas. Concretamente,
se han añadido planificadores que siguen una política FIFO, una LIFO
i una FIFO modificada para priorizar la localidad de los datos y evitar así el
número de transferencias.
Finalmente, se ha diseñado e implementado una librería que utiliza un sistema
de wrapping sobre la librería NumPy que permite la introducción progresiva
de los algoritmos distribuidos sin la necesidad de implementar-la toda de golpe
a la vez que el usuario sigue teniendo acceso a todas las funcionalidades de
la librería original. |
Abstract:
|
In the wake of the interest in being capable to use MKL through NumPy in
distributed systems, a collaboration between Intel
R and the BSC’s Work-
flows and distributed computing department has been created.
This work explores several possible investigation lines that aims to improve
the behaviour and ease the use of NumPy with MKL and PyCOMPSs simultaneously
to carry out linear algebra operations in distributed systems.
Regarding the used algorithms, first of all some solutions are explored to achieve
a better performance in the blocked matrix multiplication. Next, the
code already present in the center that computes the Cholesky factorisation
has been modified in order to improve his parallelisation level and initialise the
matrix in a distributed way. Finally, an algorithm to compute a QR decomposition
through the matrix decomposition in smaller square matrix initialized
in a distributed way has been implemented.
Next, a refactor in the COMPSs scheduler has been done in order to ease
the creation of new scheduling policies. Once this work has been done, some
new schemes has been added. In particular, schedulers with FIFO, LIFO and
FIFO modified to schedule child tasks in the father’s worker to minimize the
amount of data transfers has been added.
Finally, a library that wraps the entire NumPy library has been implemented.
This new environment allows the team to introduce the distributed implementations
progressively assuring that importing it the user will have access to
the full stack of NumPy’s functionalities, even those not still implemented. |
Materia(s):
|
-Àrees temàtiques de la UPC::Informàtica -Electronic data processing -- Distributed processing -Algebras, Linear -àlgebra lineal -sistemes distribuïts -PyCOMPSs -MKL -linear algebra -distributed computing -scheduling -planificació -Processament distribuït de dades -Àlgebra lineal |
Derechos:
|
|
Tipo de documento:
|
Trabajo/Proyecto fin de carrera |
Editor:
|
Universitat Politècnica de Catalunya
|
Compartir:
|
|