SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Programación y Computación
         paralela
       MPI y Globus

         Glen D. Rodríguez R.
     Basado en Foster y Kesselman




                                    1
Por qué usar el GRID?
• Han aparecido nuevas aplicaciones basadas en el uso
  coordinado de gente, computadoras, bases de datos,
  sensores, instrumentos, pero a ALTA VELOCIDAD
   •   Instrumentos manejados por computadoras
   •   Ingeniería colaborativa
   •   Exploración de bases de datos remotas
   •   Uso de software remoto
   •   Computación que usa data en forma intensiva
   •   Simulación a enormes escalas
   •   Estudios con parámetros de gran escala




                                                        2
Ejemplo: SF express
• Simulación distribuida e interactiva
• Necesita:
    • Descubrir recursos de cómputo
    • Configuración
    • Muchos métodos de
      comunicación
    • MPI
    • Escalabilidad
    • Tolerancia a fallos




                                         3
El Grid
• “Acceso fiable, consistente, pervasivo y difundido a
  recursos de alta performance”
• Fiable: puede proporcionar garantías de performance y
  funcionalidad.
• Consistente: interfaces uniformes para acceder a una
  gran variedad de recursos
• Difundido: habilidad de “enchufarse” al Grid desde
  cualquier lugar




                                                      4
Desafíos técnicos
• Estructuras de las aplicaciones son complejas,
  combinando aspectos de computo paralelo, multimedia,
  computo distribuido, computo colaborativo.
• Las características de los recursos varían
  dinámicamente, tanto en el tiempo como en el espacio
• Se necesita una garantía de alta performance de
  “extremo a extremo”, a pesar de lo heterogéneo de los
  recursos y la falta de control global
• Seguridad, políticas de uso, pago por el uso.




                                                     5
Globus
• Investigación básica en tecnologías de Grid
   • Administración de recursos, QoS, redes, almacenamiento,
     seguridad, adaptación, políticas, etc.
• Se ha hecho el TOOLKIT GLOBUS
   • Servicios centrales para programación usando Grid (de
     aplicaciones y de herramientas)
• Hay un “test bed” grande: GUSTO
   • Muy grande en términos de sites y aplicaciones
• Experimentos con varias aplicaciones
   • Tele inmersión, computo distribuido, etc.




                                                               6
Enfoque del Globus
• Un toolkit y una colección de servicios que
  soluciona varios problemas técnicos vitales
    • Modelo de “bolsa de servicios”
    • No es una solución integrada verticalmente
      (no cubre todas las necesidad a lo largo del
      desarrollo del software)
• Se distingue entre servicios locales y
  remotos
    • Modelo de “reloj de arena”
• Se enfoca en la arquitectura
    • Servicios centrales son la infraestructura
      básica.
    • Las soluciones más específicas y de mayor
      nivel se construye sobre esos servicios
      como base.
• Principios de su diseño
    • Bajo costo de participación
    • Control local
                                                     7
    • Adaptación
Arquitectura en capas




                        8
Servicios centrales de Globus
• Infraestructura de comunicación (Nexus, IO)
• Servicios de Información (MDS)
• Monitoreo de la performance de la red (Gloperf)
• Monitoreo de proceso (HBM)
• Administración de archivos y ejecutables remotos
  (GASS y GEM)
• Administración de recursos (GRAM)
• Seguridad (GSI)




                                                     9
Ejemplo de servicios de alto nivel
• Librerías de comunicación y de I/O
   • MPICH, PAWS, MPI-IO, PPFS, MOL
• Lenguajes paralelos
   • CC++, HPC++
• Ambientes colaborativos
   • CavernSoft, ManyWorlds
• Otros
   • MetaNEOS, NetSolve, LSA, Autopilot, WebFlow



• OJO: el testbed de GUSTO permite probar el GRID con
  máquinas en USA, Europa y Asia.


                                                   10
MPICH-G2
• Es una implementación de MPI con capacidad de usar
  Grid, específicamente, de usar servicios del Globus
  Toolkit
• Permite usar máquinas remotas en grupos MPI y correr
  aplicaciones MPI
• La conversión de datos en diferentes arquitecturas y
  formatos es automática.
• Entre máquinas de diferentes arquitecturas o sites la
  comunicación es vía TCP. En un site, puede ser por
  otros mecanismos.
• Está implementada como un MPI que corre usando un
  dispositivo virtual de comunicación “globus2”
• Ejemplos de uso: Cactus (framework para simulaciones
  numéricas)
                                                     11
Instalación de MPICH-G2
• La librería del Globus toolkit v.2.x debe estar instalada
• Probar que Globus v.2.x o posterior funcione con el
  programa “hello world”
• La variable GLOBUS_LOCATION debe apuntar al
  directorio donde está instalado Globus
• Bajarse el MPICH v.1.2.5.3 o posterior, descomprimir
• Configurar el MPICH especificando que use el device
  globus2 y alguno de los “flavors” instalados
   • ./configure -device=globus2:-flavor=gcc32dbg
• Construir el MPICH con “make” o “make install”




                                                          12
Pasos extra
• Tener una cuenta en Globus
• En las maquinas en que se corra el mpirun debe
  hacerse antes:
   • source $GLOBUS_LOCATION/etc/globus-user-env.csh, ó
   • $GLOBUS_LOCATION/etc/globus-user-env.sh
• El deamon Globus con por lo menos un servicio de job
  manager debe estar activo
• Compilar con mpicc o similar, para cada arquitectura
  donde se desee correr la aplicación.
• Ejecutar con mpirun
• Se debe crear un script RSL. Se puede dejar que el
  mpirun lo haga por uno (solo si todas las maquinas ya
  tienen una copia del ejecutable compilado para la CPU
  respectiva)
                                                          13
Pasos extra
•   Caso contrario, hay que crear ese archivo RSL a mano. Ejemplo:
•   +
•   ( &(resourceManagerContact="m1.utech.edu")
•     (count=10)
•     (jobtype=mpi)
•     (label="subjob 0")
•     (environment=(GLOBUS_DUROC_SUBJOB_INDEX 0)
•              (MY_ENV 246))
•     (arguments=" 123 456")
•     (directory=/homes/users/smith)
•     (executable=/homes/users/smith/myapp)
•   )
•   ( &(resourceManagerContact="m2.utech.edu")
•     (count=2)
•     (jobtype=mpi)
•     (label="subjob 1")
•     (environment=(GLOBUS_DUROC_SUBJOB_INDEX 1))
•     (arguments=" 123 456")
•     (directory=/homes/users/smith)
•     (executable=/homes/users/smith/myapp)
•   )
                                                                     14
RSL
• Y se ejecuta así:
• mpirun -globusrsl archivo.rsl
• Si se quiere ver el RSL pero no ejecutar nada, correr el
  mpirun con opción –dumprsl
• Componentes del RSL:
• resourceManagerContact = valor , dirección de la
  máquina y job manager bajo el cuál el job empieza
• count = valor, número de CPUs
• label = “subjob N”, una etiqueta única como identificar
  de este subjob
• environment = valores, son las variables de ambiente
  del job
• directory = … es el path donde se corre el programa
• executable = … es el programa con todo y path en la
  computadora remota
                                                        15
RSL
•   maxMemory = … , tamaño de memoría a usar en Mb
•   maxWallTime = …, tiempo asignado en minutos
•   jobType= single | multiple | mpi | condor
•   Arguments = valores, son los argumentos de la línea de
    comandos




                                                        16
Modificando el archivo RSL
• Una modificación típica es para que las comunicaciones
  colectivas del MPICH-G2 sepan más sobre la topología
  del grid.
• Otra, cuando varias computadoras quieren escribir su
  output a su propia pantalla en vez de al mismo
  dispositivo (pantalla del procesador 0). A veces, por
  razones de supervisión o monitoreo, es mejor que sean
  los administradoes locales los que vena el stdout y el
  stderr.
• Ver siguiente ejemplo




                                                     17
Ejemplo RSL
+( &(resourceManagerContact="agt-login.epn.osc.edu/jobmanager-pbs")
(count=2)
(label="subjob0")
(stdout="/home/jimg/dje/bones/stdout.osc")
(stderr="/home/jimg/dje/bones/stderr.osc")
(environment=(GLOBUS_DUROC_SUBJOB_INDEX 0)(LD_LIBRARY_PATH
   /apps/vdt/globus/lib:@PREFIX@/lib/shared))
(directory="/home/jimg/dje/bones")
(executable="/home/jimg/dje/bones/dice")
)
( &(resourceManagerContact="agt-login.ccs.uky.edu/jobmanager-pbs")
 (count=2)
(label="subjob2")
(stdout="/home/jimg/dje/bones/stdout.uky")
(stderr="/home/jimg/dje/bones/stderr.uky")
(environment=(GLOBUS_DUROC_SUBJOB_INDEX 1)(LD_LIBRARY_PATH
   /apps/vdt/globus/lib:@PREFIX@/lib/shared))
(directory="/home/jimg/dje/bones")
(executable="/home/jimg/dje/bones/dice")
                                                                18
Programa ejemplo MPI
#include <mpi.h>
#include <stdio.h>
void main(int argc, char*argv[]) {
intrank, nprocs, number;
charbuf[1024]; MPI_Status report;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
gethostname(buf,sizeof(buf));
printf("hello from %d/%d name %sn",rank,nprocs,buf);
if (rank < (nprocs/2)) {
number=(rank+1)*10+rank+1;
MPI_Send(&number,1,MPI_INT,nprocs-
   (rank+1),12,MPI_COMM_WORLD);
} else {
MPI_Recv(&number,1,MPI_INT,MPI_ANY_SOURCE,12,MPI_COMM
   _WORLD,&report);
}
printf("P:%d my number=%dn",rank,number);
MPI_Finalize(); }                                     19
Programa ejemplo
• El output de ese ejemplo es:
hello from 0/6 comp1.uni.edu.pe
P:0 my number=11
hello from 1/6 comp0
P:1 my number=22
hello from 2/6 comp0.unmsm.edu.pe
P:2 my number=33
hello from 3/6 comp1.uni.edu.pe
P:3 my number=33
hello from 4/6 comp0
P:4 my number=22
hello from 5/6 comp0. unmsm.edu.pe
P:5 my number=11
                                     20
Programa ejemplo
• Si vemos la salida, ha habido transferencia de datos
  entre 2 sites remotos, uni y unmsm
• MPICH-G2 agrupa a las comunicaciones de las más
  lentas a las más rápidas:
   •   WAN-TCP
   •   LAN-TCP
   •   Intra-machine-TCP
   •   vMPI
• Los mensajes en WAN-TCP (ejemplo: Internet) cuando
  son largos hay la opción de pasarlos por el streaming
  (múltiples conexiones)
• Para eso, consulta “MPI communicator attributes”


                                                         21

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Intro Python
Intro PythonIntro Python
Intro Python
 
Presnetación Go
Presnetación GoPresnetación Go
Presnetación Go
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
 
Perl mpi
Perl mpiPerl mpi
Perl mpi
 
Curso python
Curso pythonCurso python
Curso python
 
Sesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en PythonSesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en Python
 
Manejo de la memoria
Manejo de la memoriaManejo de la memoria
Manejo de la memoria
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_
 
Curso c++
Curso c++Curso c++
Curso c++
 
ATIX05
ATIX05ATIX05
ATIX05
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Programador Jr. para Python Primera Parte
Programador Jr. para Python Primera ParteProgramador Jr. para Python Primera Parte
Programador Jr. para Python Primera Parte
 
Python para todos
Python para todosPython para todos
Python para todos
 
Fundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la ProgramaciónFundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la Programación
 
Evidencia Sesión 5: Python
Evidencia Sesión 5: PythonEvidencia Sesión 5: Python
Evidencia Sesión 5: Python
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 

Andere mochten auch (8)

Paralela6
Paralela6Paralela6
Paralela6
 
Paralela4
Paralela4Paralela4
Paralela4
 
Paralela8
Paralela8Paralela8
Paralela8
 
Paralela5
Paralela5Paralela5
Paralela5
 
Paralela3
Paralela3Paralela3
Paralela3
 
Paralela7
Paralela7Paralela7
Paralela7
 
Paralela1
Paralela1Paralela1
Paralela1
 
Cased hole seismic (2)
Cased hole seismic (2)Cased hole seismic (2)
Cased hole seismic (2)
 

Ähnlich wie Paralela9

Computación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de RendimientoComputación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de RendimientoUnai Lopez-Novoa
 
Tipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxTipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxsnoobydoo
 
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.pptCOMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.pptJUANPABLOCHVEZNAVA
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP FrameworkPablo Pazos
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...campus party
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why FlossNeurowork
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why FlossNeurowork
 

Ähnlich wie Paralela9 (20)

Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Intro Mpi
Intro MpiIntro Mpi
Intro Mpi
 
Computo Distribuído
Computo DistribuídoComputo Distribuído
Computo Distribuído
 
Computación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de RendimientoComputación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de Rendimiento
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
7984
7984 7984
7984
 
Tipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxTipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptx
 
Brainwave
BrainwaveBrainwave
Brainwave
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.pptCOMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 
Grid computing
Grid computingGrid computing
Grid computing
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoop
 
Creacion de un cartridge para Openshift
Creacion de un cartridge para OpenshiftCreacion de un cartridge para Openshift
Creacion de un cartridge para Openshift
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP Framework
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why Floss
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why Floss
 

Kürzlich hochgeladen

Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 

Kürzlich hochgeladen (20)

Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 

Paralela9

  • 1. Programación y Computación paralela MPI y Globus Glen D. Rodríguez R. Basado en Foster y Kesselman 1
  • 2. Por qué usar el GRID? • Han aparecido nuevas aplicaciones basadas en el uso coordinado de gente, computadoras, bases de datos, sensores, instrumentos, pero a ALTA VELOCIDAD • Instrumentos manejados por computadoras • Ingeniería colaborativa • Exploración de bases de datos remotas • Uso de software remoto • Computación que usa data en forma intensiva • Simulación a enormes escalas • Estudios con parámetros de gran escala 2
  • 3. Ejemplo: SF express • Simulación distribuida e interactiva • Necesita: • Descubrir recursos de cómputo • Configuración • Muchos métodos de comunicación • MPI • Escalabilidad • Tolerancia a fallos 3
  • 4. El Grid • “Acceso fiable, consistente, pervasivo y difundido a recursos de alta performance” • Fiable: puede proporcionar garantías de performance y funcionalidad. • Consistente: interfaces uniformes para acceder a una gran variedad de recursos • Difundido: habilidad de “enchufarse” al Grid desde cualquier lugar 4
  • 5. Desafíos técnicos • Estructuras de las aplicaciones son complejas, combinando aspectos de computo paralelo, multimedia, computo distribuido, computo colaborativo. • Las características de los recursos varían dinámicamente, tanto en el tiempo como en el espacio • Se necesita una garantía de alta performance de “extremo a extremo”, a pesar de lo heterogéneo de los recursos y la falta de control global • Seguridad, políticas de uso, pago por el uso. 5
  • 6. Globus • Investigación básica en tecnologías de Grid • Administración de recursos, QoS, redes, almacenamiento, seguridad, adaptación, políticas, etc. • Se ha hecho el TOOLKIT GLOBUS • Servicios centrales para programación usando Grid (de aplicaciones y de herramientas) • Hay un “test bed” grande: GUSTO • Muy grande en términos de sites y aplicaciones • Experimentos con varias aplicaciones • Tele inmersión, computo distribuido, etc. 6
  • 7. Enfoque del Globus • Un toolkit y una colección de servicios que soluciona varios problemas técnicos vitales • Modelo de “bolsa de servicios” • No es una solución integrada verticalmente (no cubre todas las necesidad a lo largo del desarrollo del software) • Se distingue entre servicios locales y remotos • Modelo de “reloj de arena” • Se enfoca en la arquitectura • Servicios centrales son la infraestructura básica. • Las soluciones más específicas y de mayor nivel se construye sobre esos servicios como base. • Principios de su diseño • Bajo costo de participación • Control local 7 • Adaptación
  • 9. Servicios centrales de Globus • Infraestructura de comunicación (Nexus, IO) • Servicios de Información (MDS) • Monitoreo de la performance de la red (Gloperf) • Monitoreo de proceso (HBM) • Administración de archivos y ejecutables remotos (GASS y GEM) • Administración de recursos (GRAM) • Seguridad (GSI) 9
  • 10. Ejemplo de servicios de alto nivel • Librerías de comunicación y de I/O • MPICH, PAWS, MPI-IO, PPFS, MOL • Lenguajes paralelos • CC++, HPC++ • Ambientes colaborativos • CavernSoft, ManyWorlds • Otros • MetaNEOS, NetSolve, LSA, Autopilot, WebFlow • OJO: el testbed de GUSTO permite probar el GRID con máquinas en USA, Europa y Asia. 10
  • 11. MPICH-G2 • Es una implementación de MPI con capacidad de usar Grid, específicamente, de usar servicios del Globus Toolkit • Permite usar máquinas remotas en grupos MPI y correr aplicaciones MPI • La conversión de datos en diferentes arquitecturas y formatos es automática. • Entre máquinas de diferentes arquitecturas o sites la comunicación es vía TCP. En un site, puede ser por otros mecanismos. • Está implementada como un MPI que corre usando un dispositivo virtual de comunicación “globus2” • Ejemplos de uso: Cactus (framework para simulaciones numéricas) 11
  • 12. Instalación de MPICH-G2 • La librería del Globus toolkit v.2.x debe estar instalada • Probar que Globus v.2.x o posterior funcione con el programa “hello world” • La variable GLOBUS_LOCATION debe apuntar al directorio donde está instalado Globus • Bajarse el MPICH v.1.2.5.3 o posterior, descomprimir • Configurar el MPICH especificando que use el device globus2 y alguno de los “flavors” instalados • ./configure -device=globus2:-flavor=gcc32dbg • Construir el MPICH con “make” o “make install” 12
  • 13. Pasos extra • Tener una cuenta en Globus • En las maquinas en que se corra el mpirun debe hacerse antes: • source $GLOBUS_LOCATION/etc/globus-user-env.csh, ó • $GLOBUS_LOCATION/etc/globus-user-env.sh • El deamon Globus con por lo menos un servicio de job manager debe estar activo • Compilar con mpicc o similar, para cada arquitectura donde se desee correr la aplicación. • Ejecutar con mpirun • Se debe crear un script RSL. Se puede dejar que el mpirun lo haga por uno (solo si todas las maquinas ya tienen una copia del ejecutable compilado para la CPU respectiva) 13
  • 14. Pasos extra • Caso contrario, hay que crear ese archivo RSL a mano. Ejemplo: • + • ( &(resourceManagerContact="m1.utech.edu") • (count=10) • (jobtype=mpi) • (label="subjob 0") • (environment=(GLOBUS_DUROC_SUBJOB_INDEX 0) • (MY_ENV 246)) • (arguments=" 123 456") • (directory=/homes/users/smith) • (executable=/homes/users/smith/myapp) • ) • ( &(resourceManagerContact="m2.utech.edu") • (count=2) • (jobtype=mpi) • (label="subjob 1") • (environment=(GLOBUS_DUROC_SUBJOB_INDEX 1)) • (arguments=" 123 456") • (directory=/homes/users/smith) • (executable=/homes/users/smith/myapp) • ) 14
  • 15. RSL • Y se ejecuta así: • mpirun -globusrsl archivo.rsl • Si se quiere ver el RSL pero no ejecutar nada, correr el mpirun con opción –dumprsl • Componentes del RSL: • resourceManagerContact = valor , dirección de la máquina y job manager bajo el cuál el job empieza • count = valor, número de CPUs • label = “subjob N”, una etiqueta única como identificar de este subjob • environment = valores, son las variables de ambiente del job • directory = … es el path donde se corre el programa • executable = … es el programa con todo y path en la computadora remota 15
  • 16. RSL • maxMemory = … , tamaño de memoría a usar en Mb • maxWallTime = …, tiempo asignado en minutos • jobType= single | multiple | mpi | condor • Arguments = valores, son los argumentos de la línea de comandos 16
  • 17. Modificando el archivo RSL • Una modificación típica es para que las comunicaciones colectivas del MPICH-G2 sepan más sobre la topología del grid. • Otra, cuando varias computadoras quieren escribir su output a su propia pantalla en vez de al mismo dispositivo (pantalla del procesador 0). A veces, por razones de supervisión o monitoreo, es mejor que sean los administradoes locales los que vena el stdout y el stderr. • Ver siguiente ejemplo 17
  • 18. Ejemplo RSL +( &(resourceManagerContact="agt-login.epn.osc.edu/jobmanager-pbs") (count=2) (label="subjob0") (stdout="/home/jimg/dje/bones/stdout.osc") (stderr="/home/jimg/dje/bones/stderr.osc") (environment=(GLOBUS_DUROC_SUBJOB_INDEX 0)(LD_LIBRARY_PATH /apps/vdt/globus/lib:@PREFIX@/lib/shared)) (directory="/home/jimg/dje/bones") (executable="/home/jimg/dje/bones/dice") ) ( &(resourceManagerContact="agt-login.ccs.uky.edu/jobmanager-pbs") (count=2) (label="subjob2") (stdout="/home/jimg/dje/bones/stdout.uky") (stderr="/home/jimg/dje/bones/stderr.uky") (environment=(GLOBUS_DUROC_SUBJOB_INDEX 1)(LD_LIBRARY_PATH /apps/vdt/globus/lib:@PREFIX@/lib/shared)) (directory="/home/jimg/dje/bones") (executable="/home/jimg/dje/bones/dice") 18
  • 19. Programa ejemplo MPI #include <mpi.h> #include <stdio.h> void main(int argc, char*argv[]) { intrank, nprocs, number; charbuf[1024]; MPI_Status report; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&nprocs); gethostname(buf,sizeof(buf)); printf("hello from %d/%d name %sn",rank,nprocs,buf); if (rank < (nprocs/2)) { number=(rank+1)*10+rank+1; MPI_Send(&number,1,MPI_INT,nprocs- (rank+1),12,MPI_COMM_WORLD); } else { MPI_Recv(&number,1,MPI_INT,MPI_ANY_SOURCE,12,MPI_COMM _WORLD,&report); } printf("P:%d my number=%dn",rank,number); MPI_Finalize(); } 19
  • 20. Programa ejemplo • El output de ese ejemplo es: hello from 0/6 comp1.uni.edu.pe P:0 my number=11 hello from 1/6 comp0 P:1 my number=22 hello from 2/6 comp0.unmsm.edu.pe P:2 my number=33 hello from 3/6 comp1.uni.edu.pe P:3 my number=33 hello from 4/6 comp0 P:4 my number=22 hello from 5/6 comp0. unmsm.edu.pe P:5 my number=11 20
  • 21. Programa ejemplo • Si vemos la salida, ha habido transferencia de datos entre 2 sites remotos, uni y unmsm • MPICH-G2 agrupa a las comunicaciones de las más lentas a las más rápidas: • WAN-TCP • LAN-TCP • Intra-machine-TCP • vMPI • Los mensajes en WAN-TCP (ejemplo: Internet) cuando son largos hay la opción de pasarlos por el streaming (múltiples conexiones) • Para eso, consulta “MPI communicator attributes” 21