30 de junio de 2003, Vol 4, no. 2
ISSN: 1607-6079

[RDU esta indizada en...]
[Inicio]
[Estádisticas]

 


Compilación y ejecución del código

El entorno de compilación juega un papel importante en este tipo de arquitecturas. En este caso la compilación y la ejecución del código fue posible gracias al ambiente de programación y desarrollo LAM (Local Area Multicomputer), el cual permite que un cluster dedicado o una red de computadoras, puedan funcionar como una computadora paralela. LAM incluye una versión completa de las librerías estándar de paso de mensajes MPI.
Es importante mencionar que los archivos de salida de ZEUS-MP, pueden ser escritos en formato ASCII o binario. En nuestro caso utilizamos un tipo de archivos binarios, generados con ayuda del software HDF (Hierarchical Data Format), que además de permitirnos compactar el tamaño de éstos, la información que contienen se puede manipular sin ningún problema, independientemente de la plataforma empleada para escribir los datos.

Análisis de rendimiento

Antes de comenzar el análisis, es importante señalar que los resultados que se muestran a continuación se obtuvieron durante el periodo de pruebas del cluster, es decir, que había varios usuarios utilizando este complejo de computadoras al momento de hacer las corridas. Por lo tanto, no fue posible tener el 100% del rendimiento de los procesadores. Unicamente se contaba con un 30% en promedio. Esta restricción se manifestó en los resultados, como se verá más adelante.

Para este trabajo se utilizaron 5 problemas astrofísicos, listados en la tabla 3. Cada uno de los problemas se ejecutó en 1, 2, 4, 8, 16 y 32 procesadores. Los tiempos de procesamiento se fueron reportando en tablas con la siguiente información. En la primera columna se tiene el número de procesadores N que se utilizaron para correr el código; en la segunda, el tiempo de CPU (medido en segundos), empleado en cada corrida; en la tercera el número de zonas que resuelve el código por segundo; en la cuarta, el tiempo de reloj pared, es decir, el tiempo que transcurre desde que empieza a correr el código, hasta terminado el cálculo numérico, tomando en cuenta las posibles pausas que pueda hacer el sistema. También está medido en segundos. Finalmente, la última columna muestra los valores del cociente, entre el tiempo de CPU de un procesador y el tiempo que tarda en correr el programa en N procesadores. Por otro lado, en la figura 2, el eje horizontal representa el número de procesadores, mientras el eje vertical nos da el cociente entre tiempos de CPU, T1/TN. Debido a que los resultados estudiados en todos los casos son muy similares, únicamente analizaremos el caso 1.

Caso 1 (0nda explosiva-XYZ-MHD)

El problema físico, resuelto por el código ZEUS-MP, consiste en la expansión de una burbuja de gas, inicialmente en reposo, cuya presión interna es mucho más grande que la presión del medio ambiente que la rodea (animación 5 y animación 6). Esta gran diferencia de presión produce una onda explosiva, es decir, una onda que viaja a una velocidad mucho mayor a la del sonido del medio ambiente donde evoluciona. El medio ambiente, además de ser homogéneo, presenta un ingrediente extra: un campo magnético dirigido a lo largo del eje x. Con estas condiciones iniciales realizamos las simulaciones numéricas, que ayudaron a medir el rendimiento del código en el cluster. Comenzamos nuestros cálculos numéricos ejecutando el código en un procesador; dejamos evolucionar la onda explosiva hasta cierto tiempo; medimos los parámetros de la tabla 2 y repetimos la simulación para 2, 4, 8, 16 y 32 procesadores.

En los resultados presentados en la tabla 2, se observan dos aspectos muy interesantes. Primero, conforme se utilizan más procesadores, el tiempo de CPU comienza a decrecer considerablemente, desde un factor de 5/9 para N=2, hasta un factor de 1/15 más pequeño para el caso de 32 procesadores. Con este resultado se muestra claramente una de las bondades del cluster: al ejecutar exactamente el mismo programa, en la misma máquina, el tiempo de procesamiento irá disminuyendo considerablemente, conforme se utilicen más procesadores. La figura 2 muestra explícitamente este efecto. De hecho puede verse que la curva nunca se aplana, sino que crece conforme aumenta el valor de N. Por otro lado, el tiempo de reloj de pared de las corridas, desafortunadamente va aumentando conforme se utilizan más procesadores. Por ejemplo, llega a ser 4 veces más grande que el tiempo de CPU cuando utilizamos 32 procesadores. Esto puede ser interpretado de la siguiente manera: los nodos esclavos están siendo compartidos con otros usuarios y no pueden ser aprovechados de manera óptima. Este inconveniente tal vez no sea importante en ejecuciones de programas que tarden horas, pero es muy significante cuando hay simulaciones de problemas astronómicos que llegan a emplear semanas de ejecución, por lo que se recomienda que este tipo de complejos de computadoras se utilice de manera dedicada y no compartida, para obtener un beneficio ideal. (Se recomienda al lector visitar la página de ZEUS-MP, donde podrá encontrar los rendimientos del código en diferentes computadoras, cuando los procesadores son dedicados).


 
[Codigo ZEUS-MP]
[Volver al inicio]
[Cluster Mixbaal-UNAM]