Noviembre de 2013
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Contenido
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Noviembre de 2013
2 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Contenido
Introduccin Simulacin Medios Porosos Programacin Paralela Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
2 3 4 5
Noviembre de 2013
2 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Prcticamente todo material que nos rodea tiene un nivel de porosidad Por qu simular materiales porosos?:
La experimentacin con materiales reales suele ser costosa y en ocasiones peligrosa A travs de los resultados obtenidos con la simulacin se realizan experimentos reales con mayor precisin Con la simulacin es posible crear diversos escenarios
Un medio poroso se conforma por varios millones de poros por lo que su demanda de cmputo es muy alta
Noviembre de 2013
3 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
(a) Multi-Core
(c) GPU
Para obtener el mximo potencial de las nuevas arquitecturas se requieren modelos de programacin hbridos
Noviembre de 2013
4 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Contenido
1 2
Introduccin Objetivos y Metodologa Objetivos Generales y Especcos Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
3 4 5
Noviembre de 2013
4 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Objetivos
Objetivo General Diseo y desarrollo de un simulador de redes porosas considerando restricciones geomtricas Objetivos Especcos Anlisis de las capacidades de las arquitecturas Multi-Core y GPU Propuesta de algoritmos de particionamiento y distribucin de datos entre Multi-Core y GPU Propuesta e implementacin de un algoritmo paralelo para la construccin de redes porosas Propuesta e implementacin de una interfaz grca para el simulador
Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 5 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Metodologa
Estudio y anlisis de los algoritmos actuales para simulacin de redes porosas Estudio y anlisis de las arquitecturas Multi-Core y GPU Propuesta e implementacin de un algoritmo paralelo para la construccin de redes porosas Diseo de una arquitectura eciente de comunicacin entre el Multi-core y GPU Generacin de resultados Publicacin de resultados y escritura de la tesis
Noviembre de 2013
6 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
Contenido
1 2 3 Introduccin Objetivos y Metodologa Estado del Arte Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida Algoritmo Propuesto Avances y Calendario
4 5
Noviembre de 2013
6 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
S. Cordero, et al., Review: Site-Bond Network Modeling of Disordered Porous Media,2004. Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 7 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
(a) CP vlido
2 3 4 5 S. Cordero, et al., Simulation of threedimensional porous networks,2001.
(b) CP invlido
G. Romn, et al.,In-silico simulation of porous media: Conception and development of a greedy algorithm, 2011. J. Matadamas, et al.,"Parallel Simulation of Pore Networks Using Multicore CPUs, 2012. C.H. Moreno, et al., A Parallel Simulator for Mercury (Hg) Porosimetry, 2009. Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 8 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
(a) GR vlida
(b) GR invlida
Noviembre de 2013
9 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
Implementaciones Paralelas
La red se distribuye entre los N nodos a utilizar Cada subred tiene un tamao Lx Ly Lz Las fronteras de las subredes se omiten Se realizan una serie de trasferencias entre las subredes para lograr manipular todos los poros Se organizan en una topologa tipo toro
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
6 7
Se generan L3 sitos y 3L3 enlaces y se almacenan dos listas ordenadas LS y LB respectivamente Se inserta un conjunto de nclusters (semillas) de LS en posiciones aleatorias de la red Se hace crecer cada cluster o semilla con los elementos de LS hasta alcanzar un lmite establecido(clustersize ) Al nal el primer cluster utiliza los elementos restantes de LS para abarcar toda la red Se asignan C enlaces de LB a cada sitio de la red donde cada enlace asignado cumple con el CP y con las GR Se cuenta el nmero de sitios violaciones Se aplica una serie de Pasos de Montecarlo hasta eliminar todas las violaciones
Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 12 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
Arquitecturas Heterogneos
Cada vez es frecuente encontrar equipos o clusters que se componen de procesadores multi-core y GPUs Para sacar provecho de este tipo de arquitecturas es necesario utilizar un modelo de programacin hbrido como se muestran en [6],[7] y [8] Sin embargo al utilizar modelos hbridos se debe tomar en cuenta la comunicacin y el distribucin de los datos En particular el uso de GPUs puede traer consigo un problema extra que es la incompatibilidad entre GPUs
6 7 8
J. Diaz, et al., A Survey of Parallel Programming Models and Tools in the Multi and Many-Core Era, 2012. JY. Chao, et al., Hybrid Parallel Programming on GPU Clusters, 2010. K.A. Hawick, et al., Mixing Multi-Core CPUs and GPUs for Scientic Simulation Software, Res. Lett. Inf. Math. Sci., vol. 14, pp. 25-77, 2010. Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 13 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Modelado de Redes Porosas Construccin de Redes Porosas Trabajo Relacionado Programacin Hbrida
Programacin Hbrida
En base a los resultados que se muestran en diversos trabajos no existe un modelo hbrido perfecto La eciencia de un modelo hbrido depende directamente de la aplicacin Para mejorar el rendimiento en modelos hbridos se pueden utilizar tcnicas como: la superposicin[9] y el particionamiento funcional[10]
9 10
J.B. White, et. al, Overlapping Computation and Communication for Advection on Hybrid Parallel Computers , 2011. Z. Ziming, et. al, Data Partitioning on Heterogeneous Multicore and Multi-GPU Systems Using Functional Performance Models of Data-Parallel Applications , 2012. Angel Gonzlez Mndez MCyTI, UAM - Iztapalapa Noviembre de 2013 14 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Contenido
1 2 3 4 5
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Noviembre de 2013
14 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Algoritmo propuesto
Se propone un algoritmo paralelo que cumpla tanto con el CP y con las GR sobre un sistema de memoria compartida En algoritmo se compone de las siguientes fases paralelas:
Distribucin espacial de la red Sembrado y construccin de clusters Asignacin de enlaces Aplicacin de Pasos de Monte Carlo
Noviembre de 2013
15 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Distribucin de la red
Se dividir la red en N subredes, donde N es el nmero de hilos a utilizar El algoritmo factoriza N en los tres nmeros enteros ms pequeos que satisfacen N = a b c , en el mejor de los casos a = b = c = 3 N.
Noviembre de 2013
16 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Genera dos listas ordenadas locales denotadas por LS y LB para los sitios y enlaces respectivamente Se inserta un conjunto de nclusters /N (semillas) de LS en posiciones aleatorias de la subred Se hace crecer cada cluster o semilla con los elementos de LS hasta alcanzar un lmite establecido(clustersize ) Cada vez que se llega al lmite clustersize se cambia el origen Al nalizar del sembrado el primer cluster utiliza los elementos restantes de LS para abarcar toda la subredred
4 5
Noviembre de 2013
17 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Noviembre de 2013
19 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Asignacin de enlaces
Se tiene una lista LSC la cual contiene la ubicacin de L3 /N sitios insertados en la fase anterior Se asignan C 3 enlaces de LB a cada sitio en LSC donde cada enlace asignado cumple con el CP y con las GR
Noviembre de 2013
20 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Noviembre de 2013
21 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Debido a que el algoritmo propuesto se basa en data-paralelismo se utilizara la tcnica de particionamiento funcional para la distribucin de los datos Para determinar la distribucin de los datos entre un Multi-Core y un GPU utilizando particionamiento funcional se requiere de
Evaluar la capacidad de cmputo de las Multi-Core Evaluar la capacidad de cmputo de las GPUs* En base a los resultados se determinara la distribucin espacial de los datos entre Multi-Core y GPUs
Noviembre de 2013
22 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Avances Calendario
Contenido
1 2 3 4 5
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario Avances Calendario
Noviembre de 2013
22 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Avances Calendario
Avances
Se implemento el algoritmo propuesto utilizando OpenMP Se esta implementando algoritmo propuesto para GPUs Para la implementacin de la interfaz grca se tomo el curso Visualizacin de Volumen durante el trimestre 13-O
Noviembre de 2013
23 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Avances Calendario
Resultados
(a) Secuencial
(b) Paralelo
Dados los buenos resultados de la implementacin con OpenMP se escribi un artculo el cual se encuentra en revisin por el IPDPS-2014
Noviembre de 2013
24 / 25
Introduccin Objetivos y Metodologa Estado del Arte Algoritmo Propuesto Avances y Calendario
Avances Calendario
Calendario
14-I Concluir la implementacin hbrida y generar los resultados correspondientes Escritura de un artculo de revista Escritura y entrega de la primera versin de la idnea comunicacin de resultados 14-P Conclusin y entrega de la versin nal de la idnea comunicacin de resultados Defensa oral del trabajo de investigacin ante un jurado especializado
Noviembre de 2013
25 / 25