Raúl Ramos Pollán Universidad Nacional de Colombia Perspectivas de la Computación Científica. Clusters, Grids y Clouds. Desarrollos y retos Raúl Ramos Pollán Universidad Nacional de Colombia
Computación Científica “La Ciencia e Ingeniería Basada en la Simulación ha alcanzado hoy día un nivel de capacidad predictiva que complementa sólidamente los pilares tradicionales de teoría, experimentación y observación … Muchas tecnologías críticas … están en un horizonte que no pueden ser entendidas, desarrolladas o usadas sin simulación por computador”. http://www.wtec.org/sbes/
Computación Científica Algoritmos/Aplicaciones Datos Infraestructura de cómputo Recurso humano/ Comunidades científicas
Aplicaciones – Fine grained parallelism Descomposición en elementos finitos Predicción climática Docking de proteínas
Aplicaciones – Coarse grained parallelism Particiones de datos Data scans / aggregations / summaries Summatory query form over data Logs processing, index generation Map/reduce, Hadoop Simulación Montecarlo
Aplicaciones Coarse computation for fine grained parallelism Generate configurations Barridos de parámetros (ejemplo Stellerator TJ-II en la Grid) Simulate device conf 1 Simulate device conf 2 Simulate device …. Simulate device conf n Evaluate configurations
Paralelización de algoritmos Naturaleza de los algoritmos
Paralelización de algoritmos Recurso computacional disponible (GPUs, Cluster, Grids, Clouds, …) Topología interconexión unidades de cómputo Estrategias para explotar recursos computacionales Por paralelización intrínseca del algoritmo Por barrido de parámetros Por partición de datos
Ejemplos de algoritmos Procesamiento de imágenes operaciones en regiones (i.e. contraste) and perform n iterations
Ejemplos de algoritmos Particionamiento no trivial por algoritmo (otra estrategia por datos para muchas imágenes, pero cada una tiene que caber en memoria)
Ejemplos de algoritmos Particionamiento no trivial
Paralelización de KMeans … Paralelizar asignación y el cálculo de la media para cada centroide … …
Map-reduce, Hadoop
Map-reduce, Hadoop
Escalabilidad Ley de Amdahl N: Núm. nodos paralelos P: Proporción paralelizable del código S(N): speedup máximo
Infraestructuras de computación Clusters Supercomputadores Clouds Grids GPUs Computación oportunista
Top500, distribución histórica (www.top500.org)
Top500, distribución histórica (www.top500.org)
Clusters Planificación de tareas Batch jobs Sistema compartido de archivos Fast inter-networking for inter-process communication Shared storage
Supercomputadores Planificación de tareas Batch jobs Memoria compartida Procesos multi-nodo
Grids Redes de datacenters Particiones de procesos independientes Heterogéneos Federación vs distribución Middleware propio
Clouds Desacoplamiento infraestructura física Modelo de cómputo no fijo: IaaS, PaaS, SaaS
Computación oportunista Sobre recursos no propios Computación voluntaria, labs de escuelas, etc.
GPUs Computación matricial Procesadores simples y masivos
Datos científicos Colecciones de datos Adquisición de datos Colisiones LHC, secuenciaciones, digitalizaciones, bancos de imágenes, mapas
Datos científicos Orígenes Distribución Estándares y formatos Propiedad y responsabilidades
Datos científicos Orígenes Distribución Estándares y formatos Propiedad y responsabilidades
Big Data manejo de datasets de tamaño >> capacidad de las herramientas tradicionales de bases de datos según la tecnología avanza con el tiempo, el tamaño de los conjuntos de datos a los que denomina el término también crecerán, si cabe, a un aún ritmo mayo Requiere nuevo modelo (no sirven BBDD tradicionales, paquetes estadísticos/visualización desktop) Objetivo Escalabilidad «trivial»
Bases de datos NoSQL Expresividad SQL vs. Escalabilidad Tablas: filas de keys + lista no fija de columnas/valores Operaciones simples: Scan por key Acceso directo por key Transacciones mínimas (check&put) No joins, no SQL language Big table, Hbase, DynamoDB, Azure, Cassandra, etc.
Arquitectura HBase
La Gente Científicos Ingenieros Programadores Gestores de proyecto Administrativos
Formación multidisciplinar Conclusión 1: El mundo de la computación es plano, cualquiera puede acceder. Lo que nos distinguirá del resto del mundo es nuestra habilidad para hacerlo mejor y explotar las nuevas arquitecturas que desarrollamos antes de que dichas arquitecturas sean universalmente usadas. Conclusión 2: La educación y formación inadecuadas de la siguiente generación de científicos computacionales amenaza el crecimiento global de la Ciencia e Ingeniería Basadas en Simulación. Esto es particularmente urgente [...]; a no ser que preparemos a los investigadores para desarrollar y usar la próxima generación de algoritmos y arquitecturas de computadores, no seremos capaces de explotar sus capacidades para cambiar las reglas del juego. http://www.wtec.org/sbes/
Escenarios y Retos Código sucio o poco estructurado Falta de documentación Arquitecturas de software y datos espontáneas Código mezclado (paralelo, seq, …) Procesos de desarrollo informal Comunidades científicas tradicionales Procesos de desarrollo informal
Adaptarse al hardware disponible? Contribuir al software? Decisiones Grid? Cloud? Modificar algoritmos? Adaptarse al hardware disponible? Me dedico a otra cosa? Contribuir al software? Duplico datasets? Comunidad científica? Comprar hardware? GPU?
SOLOS NO SOMOS NADA Mantener hardware es caro Portar aplicaciones es caro Criterios científicos, técnicos y organizacionales Cambios generacionales
A corto plazo Medir el alcance del sw/hw disponible Medir recurso humano disponible Afinar objetivos y esfuerzo Adaptar objetivos científicos a posibilidades
A medio/largo plazo Construir equipos multidisciplinares Actualizar programas de capacitación (BSc Msc PhD) Cultura HPC en la ciencia y Cultura científica en ingeniería Generar frameworks y modelos de computación Iniciar procesos de planificación de software Generar frameworks y modelos de computación Regeneración generacional Estrategias transnacionales
Conclusiones EL USO DEL CÓMPUTO CIENTÍFICO ES INEVITABLE La computación científica es un reto tecnológico, científico y organizacional Científicos e ingenieros computacionales se necesitan mutuamente equipos multidisciplinares Tecnología vs. Modelos de computación vs. Disponibilidad de recursos (humanos + técnicos) Conciliar estrategias a corto, medio y largo plazo CAMBIO DE PARADIGMA EVITAR OBSOLESCENCIA
?