SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
MPI en Perl

                         Ruym´n Reyes Castro
                             a


                         27 de octubre de 2007




Ruym´n Reyes Castro ()
    a                           MPI en Perl      27 de octubre de 2007   1 / 28
Resumen



1   MPI


2   MPI y Perl


3   Conclusiones




    Ruym´n Reyes Castro ()
        a                    MPI en Perl   27 de octubre de 2007   2 / 28
Resumen



1   MPI


2   MPI y Perl


3   Conclusiones




    Ruym´n Reyes Castro ()
        a                    MPI en Perl   27 de octubre de 2007   3 / 28
¿Qu´ es MPI?
   e


    Message Passing Interface
    Es una especificaci´n para desarrolladores (no es realmente una
                      o
    librer´
          ıa)
    Objetivos
            pr´ctico
              a
            portable
            eficiente
            flexible
    Interfaces para C/C++ , Fortran




  Ruym´n Reyes Castro ()
      a                       MPI en Perl         27 de octubre de 2007   4 / 28
¡Y para Perl!




Ruym´n Reyes Castro ()
    a                       MPI en Perl   27 de octubre de 2007   5 / 28
¡Y para Perl!

                                          (para python tambi´n...)
                                                            e




Ruym´n Reyes Castro ()
    a                       MPI en Perl         27 de octubre de 2007   5 / 28
Modelo de programaci´n
                    o
    Pensado para memoria distribu´ıda
    Implementado en diversos modelos (Distribu´ compartida,
                                               ıda,
    h´
     ıbrida)
    El paralelismo es impl´
                          ıcito
    El n´mero de tareas ejecutadas es est´tico
        u                                a




  Ruym´n Reyes Castro ()
      a                     MPI en Perl        27 de octubre de 2007   6 / 28
Esquema de un programa MPI




  Ruym´n Reyes Castro ()
      a                    MPI en Perl   27 de octubre de 2007   7 / 28
C´digo MPI b´sico
 o          a


#i n c l u d e ” mpi . h”
#i n c l u d e < s t d i o . h>

int main ( int argc , char ∗ argv [ ] ) {
int numtasks , rank , rc ;
rc = MPI_Init(&argc ,& argv ) ;
MPI_Comm_size ( MPI_COMM_WORLD ,& numtasks ) ;
MPI_Comm_rank ( MPI_COMM_WORLD ,& rank ) ;
printf ( " Number of tasks = %d My rank= %dn" , numtasks , rank )
MPI_Finalize ( ) ;
}




    Ruym´n Reyes Castro ()
        a                         MPI en Perl   27 de octubre de 2007   8 / 28
Algunas funciones...




    MPI Comm size : N´mero de procesos lanzados
                     u
    MPI Comm rank : N´mero del proceso actual
                      u
    MPI Send y MPI Recv : Enviar y recibir
Otras muchas...




  Ruym´n Reyes Castro ()
      a                    MPI en Perl        27 de octubre de 2007   9 / 28
Tipos de datos



Funciones trabajan sobre tipo dato concreto
    MPI CHAR Car´cter
                    a
    MPI INT Entero
    MPI DOUBLE Flotante de doble precisi´n  o
    MPI PACKED Datos empaquetados
    ...




  Ruym´n Reyes Castro ()
      a                       MPI en Perl       27 de octubre de 2007   10 / 28
Implementaciones de MPI



Existen varias:
     MPICH
     LAM-MPI
     Propietarias (ibm, bull...)
     Ex´ticas
       o




   Ruym´n Reyes Castro ()
       a                           MPI en Perl   27 de octubre de 2007   11 / 28
Implementaciones de MPI



Existen varias:
      MPICH
      LAM-MPI
      Propietarias (ibm, bull...)
      Ex´ticas
        o
Utilizaremos MPICH




   Ruym´n Reyes Castro ()
       a                            MPI en Perl   27 de octubre de 2007   11 / 28
Instalaci´n de MPICH
         o



    Proceso delicado
    especial atenci´n a compiladores
                   o
    Ignorar paquetes de distribuciones
./configure --with-device=ch p4
--prefix=/scratch/mpich/ --enable-sharedlib -rsh=ssh




  Ruym´n Reyes Castro ()
      a                       MPI en Perl   27 de octubre de 2007   12 / 28
Ejecuci´n con mpich
       o




    mpirun -np numprocs programa
    Cada copia se lanza a trav´s de rsh*
                              e
    Se comunican utilizando el device que se haya especificado
    Archivo machinefile informa de PCs




  Ruym´n Reyes Castro ()
      a                      MPI en Perl         27 de octubre de 2007   13 / 28
Resumen



1   MPI


2   MPI y Perl


3   Conclusiones




    Ruym´n Reyes Castro ()
        a                    MPI en Perl   27 de octubre de 2007   14 / 28
¿Por qu´?
       e




    Multiplataforma
    Relativamente sencillo
    Forma sencilla de probar algoritmos
    No nos preocupamos de los tipos de datos




  Ruym´n Reyes Castro ()
      a                      MPI en Perl       27 de octubre de 2007   15 / 28
M´dulos disponibles
 o




    Parallel::MPI Interfaz usando XS de la librer´ de mpich
                                                 ıa
    Parallel::MPI::Simple Implementaci´n de la interfaz con
                                         o
    ciertas libertades
    PDL::Parallel::MPI Para trabajar con objetos PDL




  Ruym´n Reyes Castro ()
      a                     MPI en Perl       27 de octubre de 2007   16 / 28
Parallel::MPI


     Utiliza el lenguaje de interfaz XS
     Problema: Mapear tipos de perl a C
             Constantes predefinidas
             Tipos de datos para mensajes
                     MPI    INT
                     MPI    FLOAT
                     MPI    DOUBLE
                     MPI    CHAR

Convertir tipos de perl a C conlleva sobrecarga




   Ruym´n Reyes Castro ()
       a                             MPI en Perl   27 de octubre de 2007   17 / 28
Instalaci´n
         o



    No usar Cpan
    Fijar MPIDIR en Makefile.PL
    CC y LD con mpicc
    No olvidar make test




  Ruym´n Reyes Castro ()
      a                    MPI en Perl   27 de octubre de 2007   18 / 28
Ejecuci´n
       o




    Dar permisos de ejecuci´n al script
                            o
    No se le pueden pasar variables de entorno (PERL5LIB)
    /usr/bin/perl -w -I rutaModulo
    mpirun -np numprocs perl




  Ruym´n Reyes Castro ()
      a                      MPI en Perl        27 de octubre de 2007   19 / 28
Ejemplo



MPI SEND
MPI Send        $send, length($send),

                             MPI CHAR, 0, $tag, MPI COMM WORLD

    Referencia al dato
    Especificar longitud y tipo




  Ruym´n Reyes Castro ()
      a                          MPI en Perl   27 de octubre de 2007   20 / 28
Ejemplo




                           src/mpi.pl




  Ruym´n Reyes Castro ()
      a                     MPI en Perl   27 de octubre de 2007   21 / 28
Parallel::MPI::Simple



    Interfaz con MPI al estio perl
    Creada por Alex Gough (6 m´dulos, varios art´
                                 o              ıculos)
    Evita el uso de tipos de datos
    No sigue el est´ndar
                   a




  Ruym´n Reyes Castro ()
      a                      MPI en Perl         27 de octubre de 2007   22 / 28
Parallel::MPI::Simple



     Interfaz con MPI al estio perl
     Creada por Alex Gough (6 m´dulos, varios art´
                                  o              ıculos)
     Evita el uso de tipos de datos
     No sigue el est´ndar
                    a
Alex Gough trabaja en una estaci´n aislada en el ´rtico
                                o                a




   Ruym´n Reyes Castro ()
       a                       MPI en Perl         27 de octubre de 2007   22 / 28
Instalaci´n
         o



    No usar cpan
    CCFLAGS=’-fPIC’
    CC=’mpicc’ (No es suficiente?)
    Editar Makefile final a mano (sucio)
    Probar el test




  Ruym´n Reyes Castro ()
      a                      MPI en Perl   27 de octubre de 2007   23 / 28
Ejecuci´n
       o




    Dar permisos de ejecuci´n al script
                            o
    No se le pueden pasar variables de entorno (PERL5LIB)
    /usr/bin/perl -w -I rutaModulo
    mpirun -np numprocs perl




  Ruym´n Reyes Castro ()
      a                      MPI en Perl        27 de octubre de 2007   24 / 28
Ejemplo


MPI SEND
MPI Send($send, 0, 0, MPI COMM WORLD );

    No hay referencia al dato
    No se especifica ni el tipo ni la longitud


                            M´s sencillo
                             a




  Ruym´n Reyes Castro ()
      a                        MPI en Perl      27 de octubre de 2007   25 / 28
Ejemplo




                           src/mpiSimple.pl




  Ruym´n Reyes Castro ()
      a                        MPI en Perl    27 de octubre de 2007   26 / 28
Resumen



1   MPI


2   MPI y Perl


3   Conclusiones




    Ruym´n Reyes Castro ()
        a                    MPI en Perl   27 de octubre de 2007   27 / 28
Conclusiones



    Parallel::MPI fiel al est´ndar, f´cil de portar
                            a       a
    Parallel::MPI::Simple fiel a Perl, f´cil de escribir
                                       a
    Los m´dulos son buenos para pruebas y experimentos
          o
    Tienen bajo rendimiento (conversiones)




  Ruym´n Reyes Castro ()
      a                      MPI en Perl        27 de octubre de 2007   28 / 28
Gracias por su atenci´n
                     o




                                         Ruym´n Reyes Castro
                                             a
                                                        rreyes@ull.es




  Ruym´n Reyes Castro ()
      a                    MPI en Perl      27 de octubre de 2007   29 / 28

Mais conteúdo relacionado

Mais procurados (19)

Extendiendo aplicaciones en C y C++ con Python
Extendiendo aplicaciones en C y C++ con PythonExtendiendo aplicaciones en C y C++ con Python
Extendiendo aplicaciones en C y C++ con Python
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Integrando mis librerías C++ con Python
Integrando mis librerías C++ con PythonIntegrando mis librerías C++ con Python
Integrando mis librerías C++ con Python
 
C++
C++ C++
C++
 
Printf23
Printf23Printf23
Printf23
 
100 1
100 1 100 1
100 1
 
bibliotecas c++
bibliotecas c++bibliotecas c++
bibliotecas c++
 
Grupo 201
Grupo 201Grupo 201
Grupo 201
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Dudas printf()
Dudas printf()Dudas printf()
Dudas printf()
 
A L G U N O S C O M P I L A D O R E S
A L G U N O S  C O M P I L A D O R E SA L G U N O S  C O M P I L A D O R E S
A L G U N O S C O M P I L A D O R E S
 
c++
c++c++
c++
 
Python i
Python iPython i
Python i
 
C docx22 (1)
C docx22 (1)C docx22 (1)
C docx22 (1)
 
Ejclase mpi
Ejclase mpiEjclase mpi
Ejclase mpi
 
Que es visual c# eduardo sorto
Que es visual c# eduardo sortoQue es visual c# eduardo sorto
Que es visual c# eduardo sorto
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Turbo Pascal
Turbo PascalTurbo Pascal
Turbo Pascal
 
Evidencias de sesión 4 Curso Python
Evidencias de  sesión 4 Curso PythonEvidencias de  sesión 4 Curso Python
Evidencias de sesión 4 Curso Python
 

Destaque

Ma raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatlaMa raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatlaMa. Raquel Maizoub G.
 
Manual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en DebianManual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en Debianlavp28
 
Ch14. feedback and filpflop
Ch14. feedback and filpflopCh14. feedback and filpflop
Ch14. feedback and filpflopHwanseok Park
 
HPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMPHPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMPStorti Mario
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELARaquel Solano
 
What is [Open] MPI?
What is [Open] MPI?What is [Open] MPI?
What is [Open] MPI?Jeff Squyres
 
El sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de AltasEl sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de AltasTomás Morales
 
Introduction to MPI
Introduction to MPI Introduction to MPI
Introduction to MPI Hanif Durad
 

Destaque (12)

Ma raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatlaMa raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatla
 
Manual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en DebianManual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en Debian
 
Ch14. feedback and filpflop
Ch14. feedback and filpflopCh14. feedback and filpflop
Ch14. feedback and filpflop
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Introduccion a MPI
Introduccion a MPIIntroduccion a MPI
Introduccion a MPI
 
HPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMPHPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMP
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELA
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
What is [Open] MPI?
What is [Open] MPI?What is [Open] MPI?
What is [Open] MPI?
 
Pram
PramPram
Pram
 
El sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de AltasEl sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de Altas
 
Introduction to MPI
Introduction to MPI Introduction to MPI
Introduction to MPI
 

Semelhante a Perl mpi

Creacion de scripts en linux
Creacion de scripts en linuxCreacion de scripts en linux
Creacion de scripts en linuxGabriel Calderon
 
Tutorial perl en linux
Tutorial perl en linuxTutorial perl en linux
Tutorial perl en linuxAlex Pin
 
RivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasRivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasCrystianRivas
 
RivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasRivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasCrystianRivas
 
Herramientas de software libre
Herramientas de software libreHerramientas de software libre
Herramientas de software librejorge987456
 
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...LeonelCortes5
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller PythonSergio Soto
 
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...Claudia Naveda
 
Programación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadProgramación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadJosé Albert
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoYulgrecia2011
 

Semelhante a Perl mpi (20)

Perl2
Perl2Perl2
Perl2
 
Perl2
Perl2Perl2
Perl2
 
EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Qué hay de nuevo en PHP 7.2
Qué hay de nuevo en PHP 7.2Qué hay de nuevo en PHP 7.2
Qué hay de nuevo en PHP 7.2
 
Creacion de scripts en linux
Creacion de scripts en linuxCreacion de scripts en linux
Creacion de scripts en linux
 
Tutorial perl en linux
Tutorial perl en linuxTutorial perl en linux
Tutorial perl en linux
 
Del infierno al cielo
Del infierno al cieloDel infierno al cielo
Del infierno al cielo
 
RivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasRivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utilerias
 
RivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utileriasRivasAlvarez-OrozcoSalinas.utilerias
RivasAlvarez-OrozcoSalinas.utilerias
 
Jag
JagJag
Jag
 
Jag
JagJag
Jag
 
Herramientas de software libre
Herramientas de software libreHerramientas de software libre
Herramientas de software libre
 
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...
1.1. Conceptos preliminares sobre la evolucion y desarrollo de los leguajes d...
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...
Construcci__n_de_Compiladores_Principios_y_Pr__ctica__1ra_Edicion__Kenneth_Lo...
 
Act 01
Act 01Act 01
Act 01
 
García.Figueroa utilerias
García.Figueroa utileriasGarcía.Figueroa utilerias
García.Figueroa utilerias
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Programación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadProgramación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidad
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretado
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 

Perl mpi

  • 1. MPI en Perl Ruym´n Reyes Castro a 27 de octubre de 2007 Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 1 / 28
  • 2. Resumen 1 MPI 2 MPI y Perl 3 Conclusiones Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 2 / 28
  • 3. Resumen 1 MPI 2 MPI y Perl 3 Conclusiones Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 3 / 28
  • 4. ¿Qu´ es MPI? e Message Passing Interface Es una especificaci´n para desarrolladores (no es realmente una o librer´ ıa) Objetivos pr´ctico a portable eficiente flexible Interfaces para C/C++ , Fortran Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 4 / 28
  • 5. ¡Y para Perl! Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 5 / 28
  • 6. ¡Y para Perl! (para python tambi´n...) e Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 5 / 28
  • 7. Modelo de programaci´n o Pensado para memoria distribu´ıda Implementado en diversos modelos (Distribu´ compartida, ıda, h´ ıbrida) El paralelismo es impl´ ıcito El n´mero de tareas ejecutadas es est´tico u a Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 6 / 28
  • 8. Esquema de un programa MPI Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 7 / 28
  • 9. C´digo MPI b´sico o a #i n c l u d e ” mpi . h” #i n c l u d e < s t d i o . h> int main ( int argc , char ∗ argv [ ] ) { int numtasks , rank , rc ; rc = MPI_Init(&argc ,& argv ) ; MPI_Comm_size ( MPI_COMM_WORLD ,& numtasks ) ; MPI_Comm_rank ( MPI_COMM_WORLD ,& rank ) ; printf ( " Number of tasks = %d My rank= %dn" , numtasks , rank ) MPI_Finalize ( ) ; } Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 8 / 28
  • 10. Algunas funciones... MPI Comm size : N´mero de procesos lanzados u MPI Comm rank : N´mero del proceso actual u MPI Send y MPI Recv : Enviar y recibir Otras muchas... Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 9 / 28
  • 11. Tipos de datos Funciones trabajan sobre tipo dato concreto MPI CHAR Car´cter a MPI INT Entero MPI DOUBLE Flotante de doble precisi´n o MPI PACKED Datos empaquetados ... Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 10 / 28
  • 12. Implementaciones de MPI Existen varias: MPICH LAM-MPI Propietarias (ibm, bull...) Ex´ticas o Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 11 / 28
  • 13. Implementaciones de MPI Existen varias: MPICH LAM-MPI Propietarias (ibm, bull...) Ex´ticas o Utilizaremos MPICH Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 11 / 28
  • 14. Instalaci´n de MPICH o Proceso delicado especial atenci´n a compiladores o Ignorar paquetes de distribuciones ./configure --with-device=ch p4 --prefix=/scratch/mpich/ --enable-sharedlib -rsh=ssh Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 12 / 28
  • 15. Ejecuci´n con mpich o mpirun -np numprocs programa Cada copia se lanza a trav´s de rsh* e Se comunican utilizando el device que se haya especificado Archivo machinefile informa de PCs Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 13 / 28
  • 16. Resumen 1 MPI 2 MPI y Perl 3 Conclusiones Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 14 / 28
  • 17. ¿Por qu´? e Multiplataforma Relativamente sencillo Forma sencilla de probar algoritmos No nos preocupamos de los tipos de datos Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 15 / 28
  • 18. M´dulos disponibles o Parallel::MPI Interfaz usando XS de la librer´ de mpich ıa Parallel::MPI::Simple Implementaci´n de la interfaz con o ciertas libertades PDL::Parallel::MPI Para trabajar con objetos PDL Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 16 / 28
  • 19. Parallel::MPI Utiliza el lenguaje de interfaz XS Problema: Mapear tipos de perl a C Constantes predefinidas Tipos de datos para mensajes MPI INT MPI FLOAT MPI DOUBLE MPI CHAR Convertir tipos de perl a C conlleva sobrecarga Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 17 / 28
  • 20. Instalaci´n o No usar Cpan Fijar MPIDIR en Makefile.PL CC y LD con mpicc No olvidar make test Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 18 / 28
  • 21. Ejecuci´n o Dar permisos de ejecuci´n al script o No se le pueden pasar variables de entorno (PERL5LIB) /usr/bin/perl -w -I rutaModulo mpirun -np numprocs perl Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 19 / 28
  • 22. Ejemplo MPI SEND MPI Send $send, length($send), MPI CHAR, 0, $tag, MPI COMM WORLD Referencia al dato Especificar longitud y tipo Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 20 / 28
  • 23. Ejemplo src/mpi.pl Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 21 / 28
  • 24. Parallel::MPI::Simple Interfaz con MPI al estio perl Creada por Alex Gough (6 m´dulos, varios art´ o ıculos) Evita el uso de tipos de datos No sigue el est´ndar a Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 22 / 28
  • 25. Parallel::MPI::Simple Interfaz con MPI al estio perl Creada por Alex Gough (6 m´dulos, varios art´ o ıculos) Evita el uso de tipos de datos No sigue el est´ndar a Alex Gough trabaja en una estaci´n aislada en el ´rtico o a Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 22 / 28
  • 26. Instalaci´n o No usar cpan CCFLAGS=’-fPIC’ CC=’mpicc’ (No es suficiente?) Editar Makefile final a mano (sucio) Probar el test Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 23 / 28
  • 27. Ejecuci´n o Dar permisos de ejecuci´n al script o No se le pueden pasar variables de entorno (PERL5LIB) /usr/bin/perl -w -I rutaModulo mpirun -np numprocs perl Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 24 / 28
  • 28. Ejemplo MPI SEND MPI Send($send, 0, 0, MPI COMM WORLD ); No hay referencia al dato No se especifica ni el tipo ni la longitud M´s sencillo a Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 25 / 28
  • 29. Ejemplo src/mpiSimple.pl Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 26 / 28
  • 30. Resumen 1 MPI 2 MPI y Perl 3 Conclusiones Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 27 / 28
  • 31. Conclusiones Parallel::MPI fiel al est´ndar, f´cil de portar a a Parallel::MPI::Simple fiel a Perl, f´cil de escribir a Los m´dulos son buenos para pruebas y experimentos o Tienen bajo rendimiento (conversiones) Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 28 / 28
  • 32. Gracias por su atenci´n o Ruym´n Reyes Castro a rreyes@ull.es Ruym´n Reyes Castro () a MPI en Perl 27 de octubre de 2007 29 / 28