Inicio wiki
Aula Virtual
 Administración de Sistemas Operativos
Inicio ASO Aula Virtual

Vistas
  •   PFC Clúster de alto rendimiento en un Cloud: Ejemplo de aplicación en criptoanálisis de funciones Hash
De ASO

La investigación con clústeres de alto rendimiento (HPC) mantiene una gran tradición por la integración de tendencias y nuevas tecnologías que permite obtener un mayor poder computacional en la resolución de problemas con elevada carga de computación y complejidad en temas relacionados con la ciencia e ingeniería.

Este trabajo se ha centrado en dos metodologías de trabajo que se han combinado para ofrecer una solución de altas prestaciones con un bajo coste, mejorando los puntos fuertes de cada una de ellas: tecnología Clúster y tecnología Cloud Computing.

Básicamente, un clúster es un conjunto de computadores que se comporta como si fuera uno sólo, con el objetivo de ejecutar aplicaciones que precisan gran cantidad de recursos de procesamiento. Hoy en día desempeñan un papel importante en la solución de problemas científicos con elevada carga computacional, relacionados con las ingenierías y el comercio moderno, evolucionando en apoyo de actividades que van desde aplicaciones de supercómputo, software en misiones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento.

En este proyecto se han estudiado sus características y analizado las diferentes herramientas para su implementación, tomando MPICH como la mejor opción para el despliegue de un clúster de alto rendimiento.

Por su parte, Cloud Computing aprovecha las bondades de la virtualización de servidores para responder al explosivo aumento del número de dispositivos conectados a Internet. Con el usuario como objetivo principal, la funcionalidad de este paradigma se fundamenta en la disposición de servicios en red, posibilitando el rápido aprovisionamiento de recursos en una potente prestación de servicios IT y de negocio. Se trata de una tendencia de computación fiable y segura, con una escalabilidad elástica capaz de atender exigentes cambios en la demanda sin que ello suponga incrementos en los costes de administración y gestión.

Para este trabajo se ha realizado un estudio de sus características, tipos, ventajas y desventajas, así como las herramientas que nos permitan su implantación y uso eficiente, donde se ha seleccionado Ubuntu Enterprise Cloud como solución para el despliegue de una nube privada donde se ha implementado el clúster mencionado. Desafortunadamente, no todo son ventajas, el despliegue de una infraestructura cloud conlleva de forma inherente una pérdida de rendimiento. Para cuantificarla, se ha realizado una comparativa entre un clúster virtual y un clúster físico con el mismo equipamiento, aplicando una serie de benchmarks que analizan el rendimiento del sistema.

Tras realizar dichas pruebas y con los resultados obtenidos, es posible concluir que el despliegue de un clúster en un entorno cloud penaliza el rendimiento del sistema entre un 8,07% y un 23,59% a lo sumo, dependiendo del grado de paralelización de la aplicación.

Pero esta pérdida puede ser asumida sin problemas teniendo en cuenta este grado de paralelización ya que ésta tecnología resulta ideal para la puesta en marcha de clústeres de alto rendimiento de bajo coste, adaptables a las necesidades individuales de cada proyecto.

Tomada esta decisión, se ha decidido comprobar el rendimiento que el clúster virtual puede ofrecer ante un problema de elevada carga computacional, el criptoanálisis de funciones hash, y comparando los resultados con otro entorno de trabajo, estudiado en otros proyectos anteriores, el uso de procesadores gráficos para aplicaciones de propósito general, conocidos como GPGPU.

Las pruebas realizadas se han basado en las dos técnicas más utilizadas en la búsqueda de las vulnerabilidades de criptosistemas: los ataques de fuerza bruta y la generación de tablas Rainbow.

Para los ataques de fuerza bruta (generación de hashes y “romper” contraseñas cifradas), tanto la solución CUDA como la solución cloud ofrecen unos resultados muchos mejores que en proyectos anteriores, siendo CUDA la que mejor rendimiento ofrece, llegando hasta los 461 millones de hash generados por segundo para el caso de la función MD5.

En el caso de la generación de las tablas Rainbow, que representa la mayor parte de los costes pertenecientes al uso de este tipo de tablas, el multiprocesamiento vuelve a ser la solución en la mejora del rendimiento del sistema.

Realizando un promedio de los resultados obtenidos en este caso, la solución cloud ofrece un rendimiento medio del 1770%, mientras que CUDA ofrece un rendimiento medio del 522%, ambos con respecto a la versión secuencial, mejorando de nuevo en gran medida los resultados obtenidos en proyectos anteriores y concluyendo que CUDA, al contrario que ocurría en las implementaciones de fuerza bruta, se presenta como la implementación menos eficiente debido a las limitaciones presentadas por este lenguaje en los casos en los que es tiene lugar multitud de comunicaciones.


Archivo:ico_pdf.gif   Descarga
Documentación
Archivo:ico_pdf.gif   Descarga
Presentación