estado del arte-angel gonzalez mendez

17
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA Maestría en Ciencias y Tecnologías de la Información Departamento de Ingeniería Eléctrica Trimestre 13P Estado del Arte “Propuesta de un sistema Paralelo para la Construcción de Redes Porosas utilizando un nodo multi-core con GPU” Alumno: Ing. Angel González Méndez Asesor: Dra. Graciela Román Alonso 10 julio de 2013

Upload: angel-gonzalez

Post on 09-Nov-2015

217 views

Category:

Documents


0 download

DESCRIPTION

Estado del Arte del Proyecto Construcción de Redes porosas sujetas a Restricciones Geométricas.

TRANSCRIPT

  • UNIVERSIDAD AUTONOMA

    METROPOLITANA UNIDAD IZTAPALAPA

    Maestra en Ciencias y Tecnologas de la Informacin Departamento de Ingeniera Elctrica Trimestre 13-P Estado del Arte

    Propuesta de un sistema Paralelo para la Construccin de Redes Porosas utilizando un nodo multi-core con GPU

    Alumno: Ing. Angel Gonzlez Mndez

    Asesor: Dra. Graciela Romn Alonso

    10 julio de 2013

  • Contenido Contenido ................................................................................................................................. 2 Resumen ................................................................................................................................... 3 1 Introduccin ....................................................................................................................... 4 2 Modelado de Redes Porosas mediante DSBM ................................................................... 5 3 Algoritmos para la creacin de redes porosas ................................................................... 6

    3.1 Algoritmo Secuencial BiaSED .................................................................................... 7 3.2 Algoritmo Paralelo BiaSED ........................................................................................ 7 3.3 Algoritmo Secuencial NoMISS ................................................................................... 8 3.4 Algoritmo Paralelo S-NoMISS .................................................................................... 9 3.5 Algoritmo Paralelo D-NoMISS ................................................................................. 10

    4 Programacin Hbrida Multi-Core/GPU ............................................................................ 10 5 Avances ............................................................................................................................ 12

    5.1 Distribucin de la red porosa .................................................................................. 13 5.2 Implementacin de NoMISS con OMP .................................................................... 14 5.3 Resultados ............................................................................................................... 14

    6 Conclusiones ..................................................................................................................... 15 7 Calendario ........................................................................................................................ 16 8 Referencias ....................................................................................................................... 16

  • Resumen En la actualidad la tecnologa avanza rpidamente en trminos de hardware lo cual apoya a

    mejorar el rendimiento de aplicaciones especificas a travs del cmputo paralelo. Las Unidades de procesamiento grafico(GPUs) es una tecnologa que ha permitido ocupar las capacidades de las tarjetas graficas para mejorar el rendimiento de aplicaciones de propsito general, su aporte a sido tal que varias de las supercomputadoras del mundo integran esta tecnologa. Otra tecnologa muy importante en la paralelizacin de aplicaciones de propsito general son procesadores multi-core, cuando se utilizan en conjunto las GPUs con los procesadores multi-core en aplicaciones paralelas surge el reto de aprovechar ambas tecnologas. La mayor parte de los materiales que nos rodean contienen poros o huecos, el estudio de estos materiales tiene una gran relevancia debido a se pueden determinar las caractersticas especificas de un material. El estudio de materiales porosos se hace a travs de la simulacin debido a que el realizar experimentos con materiales reales suele ser costoso y en ocasiones peligroso, una forma de simular los materiales porosos es mediante el modelo dual de sitios y enlaces mediante el cual se representa el material poroso o red porosa. Se han diseados distintos algoritmos tanto secuenciales como paralelos para la creacin de redes porosas, sin embargo los algoritmos actualmente implementados no toman en cuenta a las GPU`s. En este documento se presenta una revisin de los algoritmos utilizados para la creacin de redes porosas y un anlisis sobre el uso de procesadores multi-core en conjunto con GPUs para la paralizacin de aplicaciones.

  • 1 Introduccin La simulacin por computadora es una herramienta altamente utilizada debido a que nos

    permite obtener una aproximacin de solucin sobre un escenario de la vida real, la simulacin se hace a travs de un modelo en el cual se abstraen las caractersticas y limitaciones del problema real. En general la simulacin por computadora se realiza para ahorrar recursos o disminuir riesgos.

    Uno de los modelos tericos para obtener un adecuada descripcin de la estructura y propiedades de un medio poroso es el Modelo Dual de Sitios y Enlaces(DSBM)[2], en este modelo existen dos tipos de huecos o poros: sitos y enlaces, donde cada sitio est conectado con C enlaces, para la construccin de redes porosas se sigue el Principio de Construccin (CP) el cual nos dice que el tamao de cada sitio siempre es mayor o igual al tamao de cualquiera de los enlaces conectados al sitio. En [2] y [3] se muestran dos algoritmos para la creacin de redes, en la primera se muestra un algoritmo con el cual se genera una red porosa vlida a partir de una invlida (BiaSED) y en la segunda se muestra un algoritmo glotn que genera una red vlida a travs de soluciones parcialmente vlidas (NoMISS).

    La creacin de redes porosas de gran tamao requiere de grandes capacidades de cmputo lo que se implica grandes tiempos de ejecucin, debido a lo anterior se requieren soluciones paralelas para la creacin de redes porosas y de esta forma disminuir los tiempos de ejecucin y aprovechar las arquitecturas actuales, en [4] se presentan 3 versiones paralelas basadas en los algoritmos BiaSED y NoMISS.

    Actualmente existen dos arquitecturas principales de hardware para el cmputo paralelo: los procesadores multi-core y las GPUs. Cada nueva generacin de estas arquitecturas hacen que se mejore de manera significativa el rendimiento de aplicaciones que hacen uso de ellas a travs de un modelo paralelo de programacin. Varias de las supercomputadoras del mundo se conforman por nodos compuestos con procesadores multi-core y GPUs, para obtener el mejor rendimiento en cada nodo se requiere de un modelo de programacin hbrido. En un modelo de programacin hbrido se requiere analizar la distribucin de carga y la comunicacin entre las arquitecturas utilizadas.

    En [6], [7] y [8] se muestran diversos experimentos sobre los distintos modelos de programacin paralela y las herramientas actualmente se utilizan para cada modelo de programacin paralela, tambin se muestran las ventajas que se obtienen al utilizar modelos de programacin paralela hbridos. En los modelos de programacin hbridos la comunicacin entre las arquitecturas utilizadas es un factor de gran relevancia debido a que una comunicacin sncrona (alta o baja) afecta directamente el rendimiento del modelo hbrido, una de las soluciones al problema de la comunicacin entre arquitecturas es la superposicin, en [9] se muestra la viabilidad de usar dicha tcnica entre procesadores multi-core y GPUs. Otro factor a considerar al usar un modelo de programacin hbrido es el particionamiento de los datos, debido

  • a que cada arquitectura tiene caractersticas propias, por lo que es necesario utilizar un modelo adecuado como se muestra en [10].

    En el presente documento se presenta un estado del arte respecto a la creacin de redes porosas y el uso de procesadores multi-core en conjunto con GPUs; en la Seccin 2 se describe el Modelo Dual de Sitios y el Principio de construccin. En la Seccin 3 se describen los algoritmos ms relevantes tanto secuenciales como paralelos para la creacin de redes porosas. En la seccin 4 se presenta un resumen sobre uso de procesadores multi-core en conjuntos con GPUs. En la seccin 5 se presentan los avances obtenidos en el trimestre 13-P y por ltimo en la seccin 6 se presenta las conclusiones y el trabajo futuro.

    2 Modelado de Redes Porosas mediante DSBM Los algoritmos presentados en [2], [3] y [4] para la creacin de redes y en [5] para la

    simulacin de la porosimetra del mercurio se basan en DSBM [1]. El DSBM define a un material poroso a travs de dos tipos de huecos o poros: los sitios y los enlaces como, cada sitio est conectado a C enlaces, donde C es la conectividad de la red. Cada enlace permite la conexin entre dos sitios, en la Figura 1 se puede observar una representacin del DSBM.

    Figura 1: Representacin de un medio poroso a travs del DSMB.

    Para la creacin de redes porosas se tiene en principio de construccin (CP) el cual establece que: El tamao de cada sitio debe ser mayor o al menos igual al tamao de cualquiera de los enlaces conectados al mismo. Los tamaos de los poros se representan a travs de dos distribuciones normales FS(RS) para los sitios y FB(RB) para los enlaces. RS es el radio de la esfera que representa a los sitios y RB es el radio del cilindro que representa a los enlaces. Dada las anteriores distribuciones se sabe que si FS(RS) y FB(RB) se traslapan, algunos sitios y enlaces tendrn valores iguales. A esta interseccin se le conoce como traslape (Figura 2). El traslape representa la dificultad de que los sitios y enlaces se conecten se una forma vlida, respetando el CP.

    Los algoritmos para la creacin de redes porosas definen una red porosa se concibe como una matriz cbica, la cual est formada por la conexin de sitios y enlaces, donde cada sitio se

  • encuentra conectado a tres enlaces directos y a tres enlaces de forma indirecta a travs de los sitios vecinos, por lo que se tiene que C=6. El tamao de la red se caracteriza por el parmetro L, el cual representa el nmero de sitos a lo largo de un borde de la matriz cbica. Con este modelo se tiene que una red de tamao L contiene L3 sitios y 3L3 enlaces (Figura 3).

    Figura 2: Traslape entre FS(RS) y FB(RB)

    Figura 3: Red Porosa con L=3 y C=6

    3 Algoritmos para la creacin de redes porosas Existen varios algoritmos para la creacin de redes porosas utilizando que siguen el DSBM

    entre los ms destacados estn el BiaSED[2] y el No-MISS[3] y sus respectivas versiones paralelas descritas en [5]. A continuacin explicaremos de manera breve y concisa el funcionamiento de cada uno de ellos.

    Los algoritmos paralelos descritos en [4] estn diseados para Message Passing Interface(MPI), en cada versin paralela la red se divide en pequeas subredes como se observa en la Figura 4, esta divisin se hace en base al nmero de nodos a utilizar, cada nodo tiene una subred de tamao Lx x Ly x Lz. Los nodos mantienen una topologa tipo toro, esto para crear una interconexin entre las distintas subredes. Para la explicacin de los algoritmos es establece que un nodo es un proceso MPI.

  • Figura 4: Red porosa dividida en 8 Partes

    3.1 Algoritmo Secuencial BiaSED Este algoritmo se basa en el uso puro del Mtodo de Montecarlo[1][2], para una matriz

    cbica la conectividad es contante(C=6), los sitios son asignados a la red mientras que los enlaces son asignados a los sitios. Los pasos del algoritmo son:

    1. El tamao de los sitos y enlaces se obtienen de forma aleatorio en base a las distribuciones FS(RS) y FB(RB). Conforme se van obteniendo los sitios con sus enlaces, los sitios se van asignado a la red. Al finalizar la asignacin se contabiliza el nmero total de violaciones al CP.

    2. Se elijen de forma aleatoria dos sitios(o enlaces) y se intercambia el radio, si el nmero de violaciones al CP disminuye o permanece igual el intercambio es vlido, en caso contrario se rechaza el intercambio.

    3. El intercambi del paso dos se realiza 4L3 veces.

    El paso 2 y 3 constituyen un paso de Monte Carlo (MCS), despus de un nmero de MCS se espera que la red resultante cumpla en su totalidad con el CP. Adicionalmente se requiere de un nmero N0 de MCS adicional para que la red creada sea lo ms realista posible.

    3.2 Algoritmo Paralelo BiaSED El algoritmo paralelo BiaSED se describe con mayor detalle en [4], los pasos del algoritmo

    son:

    1. Cada nodo generar L3/N sitios y 3L3/N enlaces, donde N es el nmero de nodos a utilizar, cada nodo ejecuta el paso uno del algoritmo secuencial.

  • 2. Lo siguiente es ejecutar 4L3/N MCSs sobre cada subred a esto los llamamos MCS paralelo, esto se realiza excluyendo a los sitios de las caras exteriores de la subred.

    3. Para que cada poro tenga la posibilidad de intercambiarse con otro de una subred distinta, se realiza una transferencia parcial de su subred a los nodos vecinos.

    4. Repetir los pasos 2 y 3, alternando los ejes x, y y z. Hasta un nmero de MCSs paralelos y se obtiene una red porosa vlida, al terminar se realiza un nmero adicional de MCSs para que la red sea aun ms real.

    3.3 Algoritmo Secuencial NoMISS Este es algoritmo glotn lo que implica que en base a soluciones parcialmente vlidas se

    genere una solucin totalmente vlida, el algoritmo se describe en [3], desde el inicio el algoritmo realiza una conexin adecuada entre sitios y enlaces, los pasos para la creacin de una red porosa vlida con limitacin en las fronteras de la red( los enlaces caras externas de la red deben cumplir el CP con los sitios de las caras externas opuestas):

    1. Se generan L3 sitios de forma aleatoria en base a FS(RS) y se ordenan de manera ascendente en una lista de sitios(LS).

    2. Se asignan los 3L3 enlaces, se genera un enlace de forma aleatorio en base a FB(RB) y se intenta conectar al primer elemento de la lista LS, mientras se cumpla el CP, en caso de que un enlace no se vincule con el primer elemento se recorre la lista LS, hasta que se conecte el enlace con un sitio. Cada vez que el primer sitio en LS completa sus seis enlaces el sitio es movido a la lista ordenada LSC. Al finalizar el paso 2 se tienen dos listas ordenadas LSC y LS, una con sitios con sus conexiones completas y otras con sitios con conexiones incompletas.

    3. Se asigna una conjunto aleatorio de semillas(sitios) de la LSC en la matriz cbica, en posiciones aleatorias. El resto de los elementos de la LSC son sembrados alrededor de cada semilla hasta llegar aun tamao establecido como cluster-size, este proceso es secuencial es decir se hace el sembrado en un semilla a la vez. Mientras se esta sembrando se tiene que para dos sitios son adyacentes solo se requiere de un enlace, se elige el enlace ms grande(solo si cumple el PC), el otro enlace es liberado y se intenta conectar con los sitios en LS siguiendo las normas establecidas en el paso 2. En caso de traslape entre Clusters se omite el sembrado en ese lugar y se continua con los espacios vacos(Figura 5).

    4. Para rellenar los huecos en la red, se elije al azar un cluster y este crece hasta que todos los espacios vacos en la red se ocupen. Al terminar este paso se tiene una red vlida.

    5. Se ejecutan un nmero N0 de pasos de Monte Carlo(MCS), para obtener una red aun ms real.

  • Figura 5: Construccin de un cluster de tamao 3x3x3 mediante NoMISS

    3.4 Algoritmo Paralelo S-NoMISS El algoritmo paralelo S-NoMISS se describe con mayor detalle en [4], este utiliza un mtodo

    esttico para la distribucin de carga, los pasos del algoritmo son:

    1. Cada nodo generar L3/N sitios y 3L3/N enlaces, donde N es el nmero de nodos a utilizar, los sitios se ordenan de forma ascendente(Parallel-Quicksort). Y cada nodo crea las listas locales LS y LCS basndose en los pasos 1 y 2 del algoritmo NoMISS secuencial.

    2. Cada nodo ejecuta sobre su subred los pasos 3 y 4 del algoritmo NoMISS secuencial. Con la restriccin de que se omiten las caras externas de cada sub red.

    3. Para lograr cumplir el CP entre las fronteras de las subredes adyacentes y rellenar los espacios vacos existentes entre estas, se realizan un serie de trasferencias a lo largo de los ejes x, y y z entre las sub redes vecinas para que de esta forma se generan subredes temporales que toman en cuenta las fronteras de cada subred(Figura 6). En las subredes temporales se siguen asignado nodos sitios y enlaces en los espacios vacos. Al terminar los pasos 2 y 3 se tiene una red porosa vlida.

    4. Ejecutar un nmero de MCSs paralelos en cada subred, esto se hace para que la red sea lo ms cercana a la realidad.

  • 3.5 Algoritmo Paralelo D-NoMISS El algoritmo paralelo D-NoMISS se describe con mayor detalle en [4], este algoritmo ejecuta los pasos 1 y 4 del algoritmo S-NoMISS exactamente igual. Los pasos que cambian respecto al algoritmo secuancial NoMISS son los pasos 3 y 4:

    1. Generacin de poros(paso 1 de S-NoMISS)

    2. Sembrado paralelo: El sembrado inicial de forma normal como en NoMISS omitiendo las caras externas de cada subred, las semillas y los Clusters ocupan el 25% de la subred. Para que cada poro tenga la posibilidad de ser sembrado al inicio, cada nodo trasfiere la mitad de la subred a los vecinos(x, y y z), por cada trasferencia se realiza una siembra paralela. Cabe destacar que las listas LSC locales de cada nodo no son necesariamente del mismo tamao al final de la siembra.

    3. Rellenado paralelo: Cada nodo intenta llenar los lugares vacos de su subred mediante un cluster que se extiende hasta un tamao (Lx -2)x(Ly -2)x(Lz -2), excluyendo las caras externas de la subred. Debido al paso dos y las posibilidad de que las listas LSC sean de distintos tamaos se genera una poltica de distribucin de carga que hace que las listas permanezcan equilibradas.

    4. Ejecutar un nmero de MCSs paralelos en cada subred(paso 4 de S-NoMISS).

    Figura 6: Transferencia entre subredes vecinas(en el eje y)

    4 Programacin Hbrida Multi-Core/GPU En [6], [7] y [8] se muestra una comparacin entre los distintos modelos de programacin

    paralela puros y las ventajas que supe el uso en conjunto de estos, adems identifican las herramientas ms utilizadas para cada modelo de programacin

  • Los modelos de programacin puros se pueden clasificar como:

    1. Programacin con memoria compartida con multi-cores a travs de POSIX Threads o Open Multi-Processing(OMP)

    2. Programacin con memoria compartida con GPUs a travs de Compute Unified Device Architecture(CUDA) o Open Computing Language(OpenCL)

    3. Programacin distribuida utilizando Message Passing Interface(MPI)

    La programacin paralela clsica utiliza un solo modelo de programacin, siendo que en la actualidad las computadoras utilizadas para computo de alto rendimiento integran uno o varios procesadores multi-core y una o varias GPUs. En la Figura 7 y Figura 8 se muestra la arquitectura bsica de un procesador multi-core y la arquitectura de un GPU respectivamente. En los ltimos aos las GPUs se han convertido en un referente para el computo de alto rendimiento ya que el uso de estas en aplicaciones paralelas de propsito general han mostrado mejor muy significativas.

    Figura 7: Arquitectura bsica de un procesador multi-core

    Figura 8: Arquitectura bsica de un GPU

    Para poder obtener el mejor rendimiento de cada computadora o cluster se requiere el uso de modelos de programacin hbridos que saquen provecha de cada arquitectura. Sin embargo se

  • deben de tomar en cuenta dos importantes aspectos: la comunicacin y el particionamiento, ambos son consecuencias inherentes del combinar uno o ms modelos.

    Los modelos de programacin hbridos ms utilizados son:

    1. Programacin distribuida con MPI y OMP

    2. Programacin distribuida con MPI y Posix Threads

    3. Programacin distribuida con MPI y CUDA

    4. Programacin distribuida con MPI y OpenCL

    En particular el modelo hbrido de programacin mutl-core con GPU no es muy utilizado debido a que por lo general al tener GPUs se les asigna toda la carga a estas dejando a un lado a los procesadores multi-core. Los resultados mostrados en [7], [8], [9] y [10] muestran que el uso en conjunto de procesadores multi-core y GPUs aumentan significativamente el rendimiento, si el caso de estudio en cada artculo no fue el mismo en todos se llega a la conclusin de que existe un cuello de botella en trminos de comunicacin entre estas dos arquitecturas lo cual puede afectar en lugar de beneficiar para esto en los artculos revisados recomiendan que la comunicacin entre las arquitecturas sea la mnima.

    Para contrarrestar el cuello de botella provocado por la comunicacin entre procesadores multi-core y GPUs en [9] se muestra un mtodo de comunicacin llamado superposicin, la idea general de este mtodo es tratar de ocultar los tiempos de latencia entre las arquitecturas, esto se logra a travs de un mtodo de comunicacin asncrono el cual debe ser diseado para cada aplicacin.

    Otro mtodo para evitar el cuello de botella es el particionamiento de datos el cual se muestra en [10] el cual se basa en el Modelo Funcional de Rendimiento(MFR), la idea de este mtodo es medir la capacidad de computo por segundo de cada unidad de procesamiento y a partir este dato y el volumen de datos generar una distribucin de carga equitativa para cada unidad de procesamiento. Esta solucin esta pensada para aplicaciones que se paralelizaran mediante data-paralelismo.

    5 Avances En base a los algoritmos presentados en la Seccin 3 y los resultados presentados en[4], se

    eligi tomar como punto de referencia el algoritmo NoMISS por que debido a la naturaleza del algoritmo y como se describe en [4] este tiempo de algoritmo disminuye sustancialmente los tiempos de ejecucin en comparacin con el algoritmo BiaSED. Al analizar las versiones paralelas S-NoMISS y D-NoMISS, se observo que el algoritmo es altamente paralelo y adems accesible para modelarse con modelo programacin paralela hbrida.

    Los objetivos alcanzados durante el trimestre son:

  • 1. Generar un algoritmo de distribucin de la red

    2. Implementacin del algoritmo NoMISS con Open Multi-Processing(OMP) con sembrado dinmico

    5.1 Distribucin de la red porosa Se creo un algoritmo el cual toma como parmetro el nmero hilos a ocupar(NT), el

    algoritmo factoriza NT en los tres nmeros ms pequeos(a, b y c) que satisfacen NT=axbxc, en el mejor de los casos es que NT tenga raz cubica en este caso el algoritmo termina de forma inmediata. Por ejemplo si se tiene NT=4 la mejor factorizacin sera (2,2,1), NT=45 la mejor factorizacin sera (3,3,5), NT=27 la mejor factorizacin sera (3,3,3). La propiedad de que los factores sean los ms pequeos posibles se debe a que las subredes generadas tengan una estructura lo ms cercana a un cubo, adems de que con factores pequeos se mejora la isotropa de la red. En la se muestra como los factores a partir de los factores de divide la red.

    Figura 9: Particionamiento de la red en base al nmero de hilos, a) 4 hilos con una distribucin (2,2,4), b) 8 hilos con una distribucin(2,2,2) y c) 64 hilos con una distribucin (4,4,4).

    Los pasos del algoritmo de distribucin son:

    1. Se vlida NT tiene raz cubica entera, si es verdadero los factores son (NT1/3, NT1/3, NT1/3).

    2. En caso de que no tenga raz entera se propone una distribucin inicial (techo(NT1/3), 1, 1)

    3. Se vlida si la multiplicacin de los factores es menor que NT. Si es menor se incrementa en uno el segundo factor y se ejecuta el paso 4. En caso contrario se

  • incrementa en uno el primer factor, el segundo y tercero se establecen a 1 y se repite el paso 3.

    4. Se vlida si la multiplicacin de los factores es mayor que NT o el segundo factor es mayor que el techo de NT1/3. En caso afirmativo se incrementa el tercer factor en uno, se establece el segundo factor a 1 y ejecuta el paso 3. En caso contrario se ejecuta el paso 3.

    5. El algoritmo termina cuando la multiplicacin de los factores sea igual a NT.

    5.2 Implementacin de NoMISS con OMP 1. Se particiona la red en base al algoritmo descrito en Seccin 5.1

    2. Cada nodo generar L3/N sitios y 3L3/N enlaces en base a FS(RS) y FB(RB) respectivamente, donde N es nmero de hilos a utilizar, los sitios y enlaces generados se almacenan en dos listas ordenadas(descendentes) LS y LB respectivamente, estas listas son locales a cada hilo.

    3. Se inicia el proceso de sembrado semillas(sitios) y la generacin de sus respectivos clsteres en cada subred que esta delimitada por Lx , Ly y Lz, tomando los sitios de la lista LS. Por cada cluster terminado se cambia el origen(x,y,z) de forma aleatoria, esto permite que el sembrado se realice en toda la red sin restriccin.

    4. Una vez que se sembraron todos los clusters, se prosigue con el rellenado de los espacios vacos de cada sub red. Tanto en el paso 2 y 3 cada sitio sembrado se borra de la lista LS y se inserta en la lista ordenada(descendente) LS2 aadiendo sus coordenadas en la red.

    5. Terminando el paso 3 cada hilo prosigue a asignar los enlaces de su lista LB, por cada sitio en LS2 se asignan 3 enlaces por sitio, siguiendo el CP con el sitio y con los 3 sitios adyacentes.

    6. Al final se vlida el numero de violaciones al CP.

    5.3 Resultados Se realizaron algunas pruebas con el nuevo algoritmo implementado con OMP con una red

    porosa de Tamao L=100, Nmero de clusters NC=2000, y Tamao de cluster CS=15. Las pruebas se realizaron en un equipo con cuatro cores y 4GB de memoria RAM. El tiempo del algoritmo secuencial es de 3,586 segundos el cual tuvo 10847 violaciones al CP. En la Tabla 1se muestran los resultados obtenidos en tiempo y nmero de violaciones al CP. con el algoritmo desarrollado. En la Figura 10 se muestra de manera grafica una comparacin entre la versin secuencial y la implementada con OMP en trminos de tiempo y no. de violaciones al CP respectivamente.

  • Hilos Tiempo(s) No. De Violaciones al CP 2 743 10832 3 360 14621 4 205 8676 8 76 16918

    Tabla 1: Tiempos de ejecucin y numero de violaciones obtenidos el algoritmo implementado

    a)

    b)

    Figura 10: a) Comparacin en tiempo y b) Comparacin en No. De violaciones al CP, entre los Secuencial NoMISS y OMP NoMISS

    En base a los resultados podemos observar que la versin paralela con OMP disminuye de manera significativa el tiempo de creacin y el nmero de violaciones tiende a crecer conforme el nmero de hilos aumenta, sin embargo con la ganancia en tiempo se podran aplicar una serie de MCSs extras para disminuir el nmero de violaciones geomtricas.

    6 Conclusiones Se observo que la simulacin de materiales porosos es un campo de gran relevancia por

    varias razones como son: ahorro de recursos, disminucin de riesgos y generar experimentos reales ms exactos a partir de los de las simulaciones. El Modelo Dual de Sitios y Enlaces es el punto de partida para los algoritmos que se revisaron en este documento, esto lo atribuye a que el modelo es muy claro, completo y adems permite modelar los materiales porosos a travs de una estructura de datos bastante sencilla de manipular. De los algoritmos revisados se concluye que el algoritmo NoMISS tanto en sus versiones secuencial y paralelas se obtienen resultados muy favorables en trminos de escalabilidad. La escalabilidad es de los puntos ms importantes cuando se habla de computo paralelo y/o distribuido y como se ha visto en los ltimos aos las GPUs se han convertido en una de las tecnologas ms importantes para el computo de alto rendimiento, sin embargo la base de las computadoras actuales son los procesadores multi-core y es por eso

  • que se requiere de aprovechar ambas tecnologas. Los modelos de programacin hbridos tal como se mostro en este documento hacen posible obtener un mayor rendimiento debido a que hace posible que trabajen en conjunto los procesadores multi-core y las GPUs, sin embargo hay que tomar en cuanta dos aspectos importantes: la comunicacin y el balance de carga(datos), esto se debe a que las capacidades de cmputo y transferencia de datos son diferentes para cada arquitectura.

    7 Calendario Trimestre Actividad

    13-P Estudio del Estado del Arte, la problemtica y la metodologa de investigacin. Estos avances sern presentados por escrito y en el seminario organizado para tal fin.

    13-O Implementacin y evaluacin del desempeo de los algoritmos propuestos. Los avances del proyecto sern presentados por escrito, en formato de artculo. Estos resultados sern presentados en el seminario organizado para tal fin.

    14-I Escritura y entrega de una primera versin de la comunicacin idnea de resultados. Los resultados sern presentados en el seminario organizado para tal fin.

    14-P Implementacin y evaluacin del desempeo de los algoritmos propuestos. Los avances del proyecto sern presentados por escrito, en formato de artculo. Estos resultados sern presentados en el seminario organizado para tal fin.

    8 Referencias [1] S. Cordero, et al., Review: Site-Bond Network Modeling of Disordered Porous

    Media, Part. Part. Syst. Charact. vol. 21, pp. 101116, 2004.

    [2] S. Cordero, F. Rojas, J.L. Riccardo, Simulation of three-dimensional porous networks, Colloids and Surfaces A: Physicochemical and Engineering Aspects, vol. 187188, pp. 425-438, 2001.

    [3] G. Romn, F. Rojas, M. Aguilar, S. Cordero, M.A. Castro, In-silico simulation of porous media: Conception and development of a greedy algorithm, Microporous and Mesoporous Materials, vol. 137, pp. 18-31, 2011.

    [4] J. Matadamas, G. Roman-Alonso, F. Rojas, F. Castro, A. Boukerche, M. Aguilar, S. Cordero, "Parallel Simulation of Pore Networks Using Multicore CPUs, IEEE Transactions on Computers, 2012.

  • [5] C.H. Moreno, F. Rojas, G. Romn, S. Cordero, M.A. Castro, M. Aguilar, A Parallel Simulator for Mercury (Hg) Porosimetry, M. Ropo et al. (Eds.): EuroPVM/MPI 2009. LNCS, Springer, vol. 5759, pp. 294304, 2009.

    [6] J. Diaz, C. Munoz, A. Nino, "A Survey of Parallel Programming Models and Tools in the Multi and Many-Core Era", IEEE Transactions on Parallel and Distributed Systems, vol.23, no.8, pp.1369-1386, 2012.

    [7] Y. Chao, H. Chih, L. Cheng, C. Tzu, "Hybrid Parallel Programming on GPU Clusters", International Symposium on Parallel and Distributed Processing with Applications (ISPA), pp. 142-147, 2010.

    [8] K.A. Hawick, A. Leist, D.P. Playne, Mixing Multi-Core CPUs and GPUs for Scientific Simulation Software, Res. Lett. Inf. Math. Sci., vol. 14, pp. 25-77, 2010.

    [9] J.B. White, J.J. Dongarra, "Overlapping Computation and Communication for Advection on Hybrid Parallel Computers", IEEE International Parallel & Distributed Processing Symposium (IPDPS), pp.59-67, 2011.

    [10] Z. Ziming, V. Rychkov, A. Lastovetsky, "Data Partitioning on Heterogeneous Multicore and Multi-GPU Systems Using Functional Performance Models of Data-Parallel Applications", IEEE International Conference on Cluster Computing (CLUSTER), pp. 191-199, 2012.