SlideShare a Scribd company logo
1 of 32
Download to read 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

More Related Content

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 

Recently uploaded

Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 

Recently uploaded (20)

Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 

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