SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Intro Python
Intro PythonIntro Python
Intro Python
ctme
 
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
maluacsa
 
Evidencia Sesión 5: Python
Evidencia Sesión 5: PythonEvidencia Sesión 5: Python
Evidencia Sesión 5: Python
maluacsa
 

Tendances (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
 

En vedette (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)
 

Similaire à Paralela9

Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
Jaime Perera Merino
 
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
 

Similaire à 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
 

Dernier

6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 

Dernier (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 

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