Publicado el 26 de Marzo del 2018
719 visualizaciones desde el 26 de Marzo del 2018
6,5 MB
73 paginas
Creado hace 9a (17/06/2014)
Diseño y evaluación de un clúster HPC: Software de sistema
Autor:
Cristobal Ortega Carrasco
Grado en Ingeniería Informática
Especialidad en Ingeniería de Computadores
26 de Junio de 2014
David López Álvarez, Arquitectura de computadores
Director:
Facultad de Informática de Barcelona
Universidad Politécnica de Cataluña (UPC) - BarcelonaTech
1
Resumen
Este trabajo trata de qué software a nivel de sistema es necesario para poder crear un clúster
para fines de High Perfomance Computing (HPC). Para ello se realiza un state of the art del
software existente y más conocido. También se trata el cómo instalarlo y configurarlo de la
manera más óptima para tener un mejor resultado, no se llega a optimizar a nivel de kernel.
Para esta parte del trabajo, se dispone de un pequeño clúster de procesadores de bajo consumo
ARM para experimentar con el distinto software, esto supone encontrarse con problemas que
quizá con otra plataforma más típica no ocurrirían.
El trabajo tiene como objetivo final el dejar un clúster funcional a nivel de software de sis-
tema, para poder correr aplicaciones de HPC sobre él y poder obtener métricas de rendimiento.
Resum
Aquest treball és sobre quin tipus de software a un nivell de sistema és necessari per poder
crear un clúster amb una finalitat per HPC. Per aix`o, es realitza un state of the art del software
existent. També és sobre com instal·lar i configurar aquest software per que corri de manera
més `optima per arribar a tenir un millor resultat, a nivell de kernel no es fan optimitzacions.
Per aquest part del treball, es disposa d’un clúster de processadors de baix consum ARM per
experimentar amb el diferent software, aix`o podria implicar trobar-se mes problemes dels que
hi podríem trobar si utilitzéssim una plataforma més típica.
El treball té com a objectiu final deixar un clúster funcional preparat a nivell de software
de sistema, per córrer diverses aplicacions HPC i poder obtenir el seu rendiment.
Abstract
This project is about what kind of system software is needed to be able to make a HPC
cluster. In order to achieve this, a state of art is made about system software used nowadays.
It is also about how install,configure and optimize this software to get the best results, but
no optimizations are made at the kernel level. For this part of the work, there is a cluster of
low-power ARM processors to experiment with different software, this could mean finding some
problems that it might not occur if another platform more typical would have been used.
The goal of this project is to get a functional cluster prepared with system software capable
of running HPC applications and get its performance.
3
Índice general
Resumen
Prefacio
2
8
1. Introducción
10
1.1. Orígenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2. Problemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Student Cluster Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1. Objetivos Generales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2. Objetivos individuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Planificación y presupuestos
2.2. Estimación temporal
14
2.1. Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.1. Estudio Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.2. Aplicación Práctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1. Listado de Tareas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2. Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.3. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3. Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1. Recursos humanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.4. Gastos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.5. Presupuesto total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3. State of art
22
3.1. Stack de software en High Perfomance Computing . . . . . . . . . . . . . . . . . 22
3.1.1. HP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2.
3.1.3. Cray Inc.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.4. SGI
3.2. Sistemas operativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Monitorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1. Monitorización de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.2. Monitorización de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Software de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4
3.4.1. Compiladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.2. Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5. Software de scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6. Message Passing Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Implementaciones MPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.7. Librerías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.7.1. ATLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.7.2. FFTW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.6.1.
4. Diseño de un clúster
36
4.1. Clúster a usar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2. Selección de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3. Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.4. Monitorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4.1. Ganglia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5. Software de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5.1. GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5.2. Extrae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6. Message Passing Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6.1. OpenMPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6.2. MPICH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6.3. Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.7. Librerías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.7.1. ATLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.7.2. FFTW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.8. Problemas con los nodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5. Conclusiones
5.1. Conclusiones
58
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.2. Conclusión personal
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6. Conclusiones de equipo
60
6.1. Conclusiones de cara a la competición . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Agradecimientos
Apéndices
A. Script: cambiar hostname
B. Script: copiar clave pública
C. Script: ssh a nodos
62
63
64
65
66
5
Índice de cuadros
. . . . . . . . . . . . . . . . . . . . . 15
2.1. Distribución de horas de trabajo según rol.
2.2. Costes asociados a recursos humanos.
. . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Costes derivados de la compra de Hardware. . . . . . . . . . . . . . . . . . . . . . 19
. . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4. Desglose de los gastos generales.
2.5. Resumen presupuesto total.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1. Software stack de Triolith (14)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2. Software stack de IBM (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3. Software stack de Tianhe-2 (12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1. Stack de software a usar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Tiempos para precisión simple de ATLAS . . . . . . . . . . . . . . . . . . . . . . 53
4.3. Tiempos para precisión doble de ATLAS . . . . . . . . . . . . . . . . . . . . . . . 53
6
Índice de figuras
2.1. Listado de Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2. Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3. Estado del Laboratorio C6-103 al llegar.
. . . . . . . . . . . . . . . . . . . . .
Comentarios de: Diseño y evaluación de un clúster HPC: Software de sistema (0)
No hay comentarios