La Universidad de la Frontera, UFRO, junto al NLHPC tienen el agrado de invitar a la comunidad académica, estudiantil y de investigación a participar en la Escuela de HPC 2014

 
Fecha:  23 y 24 de Octubre
Lugar: Universidad de La Frontera
 

Escuela HPC 2014 es  un evento organizado por el Centro de Modelación y Computación Científica (CMCC) de la Universidad de la Frontera en conjunto con el Laboratorio Nacional de Computación de Alto Rendimiento (NLHPC). El programa de este evento consiste en charlas dadas por  expositores chilenos y  extranjeros de gran interés para la comunidad HPC, además de talleres de Programación de GPU y aplicaciones.

Los expositores son,

Dr. Carsten Trinitis, Technische Universität München/University of Bedfordshire

Dr. Bernd Feisleben, Philipps-Universität Marburg  

Dr. Patricio Galeas, Universidad de la Frontera

Dr. Ricardo Barrientos, Universidad de la Frontera

Dr. José Gómez Perez,Universidad Complutense de Madrid.

Dr. Andrés Ávila B., Universidad de la Frontera

 Las charlas incluyen:

Introducción a la Arquitectura Xeon Phi de Intel y Modelos de Programación

Las charlas y cursos cubrirán los conceptos de arquitectura de los coprocesadores Xeon Phi (MIC) de Intel, específicamente el primer producto disponible comercialmente cuyo nombre de código es Knights corner. Xeon Phi combina muchos cores x86 en un solo chip, focalizándose en aplicaciones de cómputo intensivo altamente paralelas de por ej. simulaciones numéricas, física computacional, química, biología, servicios financieros, etc. Se expondrá un énfasis en cuanto a  cómo difiere Xeon Phi de las arquitecturas promedio de x86/Xeon.

En la segunda parte, se presentarán modelos de programación para Xeon Phi, incluyendo las herramientas y librerías disponibles en como optimizar las aplicaciones para el rendimiento.

Abstracciones de Programación para Procesamiento de Data Reactivo Distribuido

Las abstracciones de programación modernas orientadas a objetos sirvieron para el modelamiento de la realidad en software en las últimas dos décadas, pero ya no encajan con las necesidades de una nueva realidad computacional dominada por los procesos de vastas cantidades de data y flujos de eventos de procedencia heterogénea. Esta nueva realidad requiere abstracciones de programación para expresar de forma declarativa correlaciones data/evento y para abstraer los recursos data/evento y representaciones, así como también cómo se procesan los cálculos en este último.

En esta charla, se presentarán planteamientos para potenciar el modelo de programación orientada a objetos para apoyar de mejor forma las necesidades de distribución, cálculos asíncronos que son reactivos en el sentido de que de forma autónoma y en incremento mantienen sus resultados como entidades que cambian, de las cuales estos resultados dependen. Esta investigación se está llevando a cabo en el contexto del proyecto PACE (Abstracciones de Programación para Aplicaciones en Medio Ambiente de Cloud) fundado por ERC.

Arquitectura de Motor de Búsqueda

Debido a las constantes mejoras en la captura, transmisión, almacenamiento de información digital y la necesidad de manejar esta enorme cantidad de información, muchos servicios y herramientas novedosas han sido desarrollados. Una de las más populares son los motores de búsqueda, los cuales actualmente sirven como interfaces extendidas universalmente para información, que trascienden categorías de usuarios y regiones geográficas. Por lo tanto, los avances en la recuperación de información, la tecnología subyacente de los motores de búsqueda, se convierte en un tema de interés de cualquier usuario en línea.

Métodos de Matriz Libre para la Programación de GPU

Uno de los mayores problemas en HPC es el almacenamiento y la operación de matrices de gran tamaño. La mayoría de los métodos utilizados en la optimización y la solución numérica de ecuaciones diferenciales utilizan matrices dispersas, es decir, matrices con un gran número de entradas cero. Un método reciente para mejorar la eficiencia de estos algoritmos es desarrollar estrategias evitando el almacenamiento de estas matrices, los llamados métodos de matriz libre. Este enfoque puede ser implementado en GPU con un gran número de cores cuando cada core está a cargo de un variable, por lo que la estrategia de matriz libre puede ser utilizada para acelerar diferentes algoritmos. Se aprenderá acerca de los diferentes algoritmos de matriz libre utilizados para los métodos de tipo Newton, Mecánica de Fluidos, Mecánica de Sólidos, y los problemas de calor y cómo implementarlas en GPUs. Un ejemplo detallado en solucionadores iterativos para ecuaciones elípticas se utilizará como estudio de caso para probar la aceleración de algoritmos más clásicos.

Taller Programación CUDA

En los últimos años , ha aparecido una alternativa muy prometedora para la aceleración en las operaciones de búsqueda, que es el uso de las GPUs (unidades de procesamiento gráfico). Una GPU es un dispositivo que puede ser utilizado como un coprocesador de alto rendimiento, adecuado para la aceleración de códigos de datos en paralelo. Este curso mostrará una visión general de la arquitectura utilizada por las GPUs de Nvidia y el modelo de programación que ofrece a sus conductores CUDA, con el fin de exponer los retos que los compiladores tienen que enfrentar para producir códigos eficientes para estos dispositivos.

Físicamente los cores de la GPU (procesadores) se organizan en varios multiprocesadores. Cada multiprocesador se compone de varios procesadores escalares que comparten una sola unidad de instrucciones. Los procesadores dentro de un multiprocesador se ejecutan en bloqueo de paso, con la misma instrucción en cada ciclo,pero en diferentes datos. Cada multiprocesador puede mantener cientos de colas en ejecución. Estas colas se organizan en conjuntos llamados warps. Cada ciclo, el programador de hardware de cada multiprocesador elige al próximo warp para ejutar (es decir, sin colas individuales, sino que warps son intercambiadas dentro y fuera), utilizando multicolas simultáneas muy finas para ocultar latencias de acceso a memoria. Este modelo de ejecución se llama
Single Instruction Multiple Thread (SITM) por NVIDIA. En el curso se estudiarán todos los conceptos anteriores , compilando y ejecutando ejemplos.

Aplicaciones Numéricas de Paralelización eficientes en Arquitecturas Manycore Modernas 

En la era de las arquitecturas manycore, la programación paralela se convierte en la única forma de mejorar el rendimiento de las aplicaciones. Para que el rendimiento de las aplicaciones crezca con las futuras aplicaciones de hardware, las implementaciones paralelas deben escalar apropiadamente. Esto es especialmente cierto en el contexto de las aplicaciones numéricas, generalmente compuestas de granos de álgebra lineal mas pequeños que deben encajar perfectamente en la arquitectura subyacente.

En este seminario se revisarán los principales desafíos involucrados en el desarrollo de algoritmos paralelos escalables en arquitecturas manycore actuales como las GPUs Nvidia utilizando el modelo de programación CUDA. La partición del dominio durante el uso de algoritmos de serie en cada partición ya no es una respuesta. Por otra parte, la densidad de la aritmética debe aumentarse para tolerar las cada vez mayores latencias de memoria. A menudo, implica sacrificar paralelismo con el fin de obtener localidad de datos y acceder a la regularidad de modo que el ancho de banda de memoria disponible se exploten al máximo y los datos sean reutilizables  tanto como sea posible en las capas de memoria más cercanas a las unidades funcionales. Cuando se trata de grandes conjuntos de datos, la partición de datos es clave para un rendimiento escalable. Las transferencias de CPU a GPU (y viceversa) deben minimizarse mediante el diseño cuidadoso de las aplicaciones, una tarea no trivial cuando cuando se tienen por objetivo arquitecturas heterogéneas multi-CPU y multi-GPU.

Por último, se mostrará la necesidad de paralelización tanto dentro como alrededor de los núcleos internos que explotan esta heterogeneidad de arquitectura moderna.

Durante el seminario, se pondrán en práctica los conceptos más importantes que exploran diferentes puertos de granos de álgebra lineal tales como la multiplicación de matrices. Finalmente, se tratará de juntar todo al portar una aplicación más grande: la Factorización de Matriz No-negativa (NMF), ampliamente utilizada debido a su  capacidad de proporcionar nuevos conocimientos y la información relevante acerca de las relaciones complejas latentes en los conjuntos de datos experimentales. NMF descompone datos de entrada como el producto de dos matrices limitados al tener elementos no negativos. Esto resulta en una representación reducida de los datos originales que puede ser vista ya sea como una extracción de características o como una técnica de reducción de dimensionalidad. NMF puede ser visto como una secuencia de grano de álgebra lineal más simple pero se demostrará que simplemente invocando estos granos uno tras otro esta lejos de ser lo óptimo.

 

Para inscripción e información sobre el evento

http://www.cmcc.ufro.cl/hpc2014/

Escuela HPC 2014

Escuela HPC UFRO 2014 El evento Escuela HPC es organizado por el Centro de Modelación y Computación Científica (CMCC) de la Universidad de La Frontera en conjunto con el Laboratorio Nacional de Computación de Alto Rendimiento NLHPC (http://www.nlhpc.cl). Organizadores del Evento ChairAndrés Ávila (andres.avila@ufrontera.cl) Comité Organizador Ricardo Barrientos (ricardo.barrientos@ufrontera.cl) Patricio Galeas (patricio.galeas@ufrontera.cl) Raphael Verdugo (r.verdugo01@ufromail.cl)
slider-hpc2014