5. CONCLUSIONES.

Anuncio
5. CONCLUSIONES.
108
Las conclusiones que se pueden deducir de la realización del proyecto son diversas, de
modo que vayamos por partes.
El tema del cálculo en paralelo no es, ni mucho menos, trivial. Son muchos los conceptos
que hay que tener en cuenta antes de empezar a implementar aplicaciones paralelas.
Uno de los referentes a tener en cuenta es que no es lo mismo realizar una aplicación
pensando desde el primer momento en paralelo, que intentar paralelizar una aplicación que en
la actualidad funciona de forma secuencial. Es difícil no desviar el pensamiento hacia la
tendencia de programar en serie (aun cuando el cerebro humano trabaja constantemente en
paralelo).
Programar en paralelo, es cambiar un poco la forma de pensar. Un mismo programa se
ejecuta en varias máquinas al mismo tiempo, pero cada una mantiene un dominio distinto de
valores para las mismas variables. Esta característica y muchas otras comentadas a lo largo de
la memoria, hacen que la programación en paralelo sea un tanto complicada. Sin embargo,
con relativamente poco tiempo de aprendizaje, es posible realizar programas que realmente
tienen una gran aplicación en el ámbito científico.
Es importante destacar el gran soporte que ofrece la librería MPI para las comunicaciones
entre los ordenadores del cluster. A través de unas rutinas definidas, se esconde toda la
complejidad que supondría realizar de forma directa todos los códigos correspondientes a las
operaciones de comunicación entre procesos.
Decir también, que los scripts proporcionados por el paquete de MPI, son una herramienta
muy potente, y prácticamente hacen transparente al usuario toda la fase de ejecución de
aplicaciones en paralelo.
Además, es sorprendente la perfecta cooperación entre las librerías MPI y PETSc.
Son muchas las conclusiones que se derivan de la programación con la librería de cálculo
científico en paralelo PETSc. Cualquier programador experimentado en la librería PETSc,
seguramente pueda decir muchas cosas sobre ella. Sin embargo, cualquier usuario que
programe utilizando la librería, por poco tiempo que sea, puede deducir importantes
conclusiones.
Destacar la gran ventaja de que PETSc utilice la filosofía de la programación orientada a
objetos, ya que facilita en gran medida el trabajo en la fase de desarrollo de aplicaciones. Por
otro lado, decir que es bastante útil que PETSc utilice los mismos nombres de interfaces a
rutinas para C y para Fortran.
La creación de grandes aplicaciones con PETSc es posible con sólo unas cuantas líneas de
código.
Es asombroso la facilidad de creación de vectores y matrices paralelos (y secuenciales),
así como el gran número de rutinas para manejo de estos objetos.
Una cuestión que ha quedado pendiente es el asunto de la convergencia de los algoritmos
utilizados por los solvers de sistemas lineales. El algoritmo GMRES ha sido el escogido para
resolver los sistemas planteados en la fase de pruebas. El tema está en que no es posible tener
un algoritmo para resolver todos los tipos de sistemas existentes. El GMRES tiene varios
parámetros de configuración, con los que se ha jugado para intentar conseguir la convergencia
y, en la mayoría de los casos, ha sido inútil. En las pruebas se llegó a crear una matriz llena de
50.000 x 50.000 elementos (no se pudo con más por falta de memoria en el cluster); sin
embargo, el solver no llegó a converger. La estructura de la matriz, esto es, la forma en que se
disponen los bloques llenos y vacíos, es determinante para lograr que GMRES converja.
109
Pese a estos problemas con la convergencia del GMRES, los resultados obtenidos en las
pruebas son esperanzadores, pues es posible que con un poco de tiempo y esfuerzo se
consigan resolver los sistemas citados.
110
Descargar