Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Implementación de un Cluster de Computadoras con software libre para Computación Cientı́fica en Jicamarca A.Zamudio Abraham Zamudio M. Milla JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Contenido de la Presentación 1 Radio Observatorio de Jicamarca 2 Cluster de Computadores Tipo Beowulf 3 JRO CLUSTER 4 Ajuste No lineal de espectros de Dispersión Incoherente 5 Resultados 6 Conclusiones y Trabajos Futuros Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Presentación Atmósfera e Ionósfera Fı́sica de la Ionosfera Índice 1 Radio Observatorio de Jicamarca Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Presentación Atmósfera e Ionósfera Fı́sica de la Ionosfera El Radio Observatorio de Jicamarca (ROJ) El Radar más grande del mundo está en el Perú http://jro.igp.gob.pe Investigación espacial remota (desde Tierra), usando técnicas de radar (Radar de Dispersión Incoherente-ISR). Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Presentación Atmósfera e Ionósfera Fı́sica de la Ionosfera El Radio Observatorio de Jicamarca (ROJ) El comportamiento de la Ionósfera es dependiente de los eventos que ocurren en el SOL ¿Qué es la ionósfera? Vista desde el espacio, la esfera terreste tiene una atmósfera de coloración azul brillante debido al efecto cromático producido por la dispersión de la luz solar sobre los gases atmosféricos. Estos conviven en una capa delgada compuesta principalmente por polvo y gases retenidos principalmente por la acción de la fuerza de gravedad. La ionosfera es una región ionizada arriba de la llamada baja atmósfera. En esta capa existe una gran cantidad de iones generados por la influencia de la radiación solar, de partı́culas cósmicas y solares de alta energı́a incidentes sobre la tierra. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Presentación Atmósfera e Ionósfera Fı́sica de la Ionosfera El Radio Observatorio de Jicamarca (ROJ) Estimación de parametros ionosféricos Densidad de Electrones (Ne ) Para el cálculo de estos parámetros fı́sicos de la ionósfera se han Temperatura de Electrones (Te ) desarrollado programas de inversión que ajustan los datos a modelos. Temperatura de Iones (Ti ) Este tipo de procesamiento demanda Drifts Verticales una gran carga computacional. Drifts horizontales Composición Quı́mica Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Definición e Historia Índice 2 Cluster de Computadores Tipo Beowulf Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Definición e Historia Definición Asignar más recursos a una tarea acortara el tiempo de procesamiento, además de un ahorro potencial en costos. Un cluster de tipo Beowulf se puede construir con componentes comunes (computadoras personales, estaciones de trabajo, redes de alta velocidad, etc.), estos componentes se deben comportar como una única computadora. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Definición e Historia Historia A finales de 1993, Donald Becker y Thomas Sterling comienzan a construir el primer cluster Beowulf con fines de investigación. Fue construido con 16 computadores personales con procesadores Intel DX4 de 200 MHz, que estaban conectados a través de un switch Ethernet. Figura: Beowulf - Nasa 1994 Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Índice 3 JRO CLUSTER Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo JRO Cluster Lo que se busca con el JRO-Cluster es dar uso a las computadoras del radio observatorio que estén disponibles para computación cientı́fica. Componentes de Hardware: 1 Intel Core i5 3.20GHz (4 cores) - 3 Gb de Ram 1 Intel Xeon 3.00GHz (4 cores) - 4 Gb de Ram 1 Intel Xeon X5355 2.66GHz (8 cores) - 24 Gb de Ram Red Gigabit Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo JRO Cluster JRO-Cluster : El nodo master comparte por medio del protocolo NFS un directorio (jro cluster) donde estan creadas las cuentas de los usuarios. Este directorio es montado por cada uno de los nodos esclavos. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Software MPI Torque Maui Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Message Passing Interface - MPI MPI es un estándar adoptado para el desarrollo de una librerı́a de comunicación a través de paso de mensajes, siendo este estándar largamente utilizado para la exploración del paralelismo en arquitecturas caracterizadas por poseer una memoria distribuida. Práctica Portable Eficiente Flexible Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Message Passing Interface - MPI Razones para usar MPI Estandarización: MPI es la única librerı́a de paso de mensajes que se puede considerar como un estándar. Es compatible con prácticamente todas las plataformas HPC. Portabilidad: No hay necesidad de modificar el código fuente al portar tu aplicación a otra plataforma que soporte el estándar MPI. Rendimiento: Las implementaciones de los vendedores de hardware deben explotar las capacidades inherentes al hardware para optimizar el rendimiento. Funcionalidad: Son alrededor de 115 rutinas (funciones) que definen el estándar MPI2 Disponibilidad: Una variedad de implementaciones están disponibles, tanto publicas como comerciales. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Message Passing Interface - MPI Modelo de Programación MPI se presta a prácticamente cualquier modelo de memoria distribuida. Por otra parte MPI se utiliza comúnmente para poner en práctica algunos modelos de memoria compartida, como por ejemplo el paralelismo de datos en arquitecturas de memoria distribuida. Plataformas de hardware Memoria Distribuida: Originalmente, MPI fue para los sistemas de memoria distribuida . Memoria Compartida: Los sistemas de memoria compartida se hicieron mas populares (particularmente las arquitecturas SMP y NUMA). Razón por lo cual las implementaciones de MPI aparecieron para estas arquitecturas . Hı́bridos MPI es usado actualmente en casi cualquier arquitectura paralela, incluyendo computadoras masivamente paralelas, Cluster SMP, cluster de estaciones de trabajo y redes heterogéneas (Grid Computing) Todo el paralelismo es explı́cito. El programador es responsable por la correcta identificación del paralelismo y de la correcta implementación de algoritmos paralelos usando construcciones de MPI El numero de tareas dedicadas para correr un programa paralelo es estático. No se pueden generar tareas en tiempo de ejecución. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Estructura genérica de un programa MPI Atención!!! Si bien se puede especificar que tarea debe hacer cada componente del cluster, en mpich2 el mismo programa que se lanza en el nodo master es el que se ejecuta en todos los nodos esclavos. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Message Passing Interface CHameleon MPICH2 fue diseñado para ser una implementación ampliamente portátil de alto rendimiento del estándar Message Passing Interface (MPI) (MPI-1 y MPI-2). MPICH2 esta pensado para proporcionar una implementación de MPI eficiente, compatible con diferentes plataformas de computación y comunicación incluyendo clusters de computadores, redes de alta velocidad (Myrinet de 10 Gigabit Ethernet, InfiniBand, Quadrics) y sistemas de computación patentados (Blue Gene, Cray, SiCortex) . Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo HolaMundo.c (Versión Serial) #include <stdio.h> int main() { printf("Hola Mundo"); } Compilación gcc -o HolaMundo HolaMundo.c Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo HolaMundo.c (Versión Paralela I ) #include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { MPI_Init( &argc, &argv ); printf("Hola Mundo"); MPI_Finalize(); } Compilación mpicc -o HolaMundo HolaMundo.c Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo HolaMundo.c (Versión Paralela II ) #include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { int np, p; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &np ); MPI_Comm_rank( MPI_COMM_WORLD, &p ); printf("Soy el proceso %i de un total de %i \n", p, np ); MPI_Finalize(); } Compilación mpicc -o HolaMundo HolaMundo.c Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Resource Manager - Torque TORQUE es un administrador de recursos Open Source que provee control sobre los trabajos y nodos pertenecientes a un cluster. Torque está basado en OpenPBS (Version 2.3.12) e incorpora escalabilidad, tolerancia a fallos y parches con caracterı́sticas extendidas además de asignar recursos en base a peticiones como pueden ser: Arquitectura del procesador, memoria RAM, cantidad de procesadores, tiempo total de ejecución en los procesadores y de toda la tarea (walltime), etc. Esta versión puede ser libremente modificada y redistribuida sujeto a las restricciones de la licencia incluida. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Resource Manager - Torque Troque provee mejoras sobre el estándar de OpenPBS en las siguientes areas: Tolerancia a Fallos Interfaz de planificación Escalabilidad Usabilidad Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Scheduler - MAUI MAUI CLUSTER SCHEDULER es un planificador de trabajos Open Source usado en clusters y supercomputadoras. En él se pueden definir politicas de asignacion de recursos, como atributos de las colas, logrando una gestion mas efectiva con caracteristicas tales como: qué proceso corre, cuándo y dónde, logrando ası́ una mejor utilización de todos los recursos. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Observación Atencion El uso de Torque-Maui hace que la versión de mpiexec con la que viene por defecto la distribución de las librerı́as MPI no sea la mejor forma de trabajar, la razón es que habrı́a que estar manteniendo el anillo mpd en el cluster, o ayudar a los usuarios a crear y destruir anillos. Para resolver este inconveniente se usa una versión de mpiexec desarrollada por el Centro de Supercomputación de Ohio (esta versión solo se puede usar con torque). Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Hardware Software Ejemplo Ejemplo de un script torque #PBS −S / b i n / ba s h #PBS −N p a r a l l e l F i t t i n g #PBS −q b a t c h #PBS − l n o d e s=quad2 : ppn=4+quad4 : ppn=8 #PBS − l w a l l t i m e = 2 4 : 0 0 : 0 0 #PBS − j oe #PBS −o p a r a l l e l F i t t i n g q 2 4 q 4 8 5 0 0 0 0 i t e r . o u t cd $PBS O WORKDIR t i m e / u s r / l o c a l / m p i e x e c 8 3 / b i n / m p i e x e c mpi da t a Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Planteamiento del Problema Índice 4 Ajuste No lineal de espectros de Dispersión Incoherente Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Planteamiento del Problema Modos de Dispersión Incoherente Las medidas de velocidad del Drift se pueden realizar con alta precisión en Jicamarca debido a que es posible apuntar el haz perpendicularmente al campo magnético. Desde el punto de vista de frecuencias, el espectro de la señal dispersa se vuelve angosto, haciendo que la medición de corrimientos Doppler sea fácil. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Planteamiento del Problema Ordenamiento de los datos : Modelo f (f rec) = A exp −(f rec−f rec0)2 2σ 2 +b Problema Lo que buscamos es acelerar el proceso de inversión de los espectros de acuerdo al modelo planteado y ası́ obtener algunos parámetros fı́sicos de la ionósfera. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Planteamiento del Problema Algoritmo de Levenberg-Marquardt Levenberg (1944) y luego Marquardt (1963) sugirieron usar una versión precondicionada del Método de Gradiente que modifica la dirección de descenso en la k-esima iteración. ρI : Termino Agregado en el Algoritmo de Levenberg-Marquardt. [ρI + p X ∇hi (xk )[∇hi (xk )]t ]dk = −∇f (xk ) i Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Explicación del Algoritmo La cantidad de espectros que analizamos es 74620. Nuestra estrategia fue implementar una función que reciba un espectro (127 puntos), el resultado de esta función son los cuatro parámetros (A,frec0,σ,b) . Planteamiento del Problema MPI se encarga de que el nodo master le entregue a cada nodo un espectro y espere a que el nodo esclavo devuelva los párametros. 8 cores NODOS ESCLAVOS DATOS 4 cores Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Índice 5 Resultados Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Conclusiones Trabajos Futuros Índice 6 Conclusiones y Trabajos Futuros Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Conclusiones Trabajos Futuros Es posible usar computadores comunes para la construcción de una arquitectura de computo paralelo. El costo en software es nulo (Linux). Se logro disminuir el tiempo de procesamiento de los espectros en un factor inversamente proporcional al número de procesadores. Abraham Zamudio JRO CLUSTER Radio Observatorio de Jicamarca Cluster de Computadores Tipo Beowulf JRO CLUSTER Ajuste No lineal de espectros de Dispersión Incoherente Resultados Conclusiones y Trabajos Futuros Conclusiones Trabajos Futuros Agregar los procesadores (CPU) del Radio Observatorio de Jicamarca que tengan tiempo ocioso al JRO-Cluster. Añadir soporte para correr programas hechos con CUDA Desarrollar un sistema de computo paralelo que incluya a las computadoras del IGP. Abraham Zamudio JRO CLUSTER