SlideShare ist ein Scribd-Unternehmen logo
1 von 69
“COMPUTACIÓN DISTRIBUIDA Y SU
APLICACIÓN TECNOLÓGICA PARA
INCREMENTAR LA EFICIENCIA DEL
      USO DE RECURSOS
  INFORMÁTICOS EN RED DE LA
           ESPOL”


                Luis Vargas V.
            Gonzalo Luzardo M.
Agenda

•   Antecedentes.
•   Problema y solución.
•   Posibles alternativas.
•   Diseño.
•   Implementación.
•   Pruebas y resultados.
•   Demostración.
•   Conclusiones y recomendaciones.
ANTECEDENTES
Antecedentes

• Existen proyectos de investigación que
  deben analizar gran cantidad de datos;
  renderización de imágenes, simulación de
  fenómenos naturales, redes neuronales,
  son algunos ejemplos.
• Necesitan computadoras de gran
  capacidad de procesamiento.
Antecedentes

• LA IBM BLUE
  GENE/L , utilizada
  para aplicaciones de
  hidrodinámica,
  química cuántica,
  dinámica molecular,
  astronomía e
                         Su construcción tuvo un costo
  investigación          aproximado de 150 millones de
  espacial, y modelado   dólares.
  climático.
Antecedentes

• Existen otras
  alternativas que
  permiten unir el poder
  de procesamiento de
  un conjunto de
  computadoras
  disponibles en una red.
• Este nuevo paradigma
  se llama Computación
  Distribuida.
Computación Distribuida

• La computación distribuida, es un nuevo modelo
  para resolver problemas de computación masiva
  utilizando un gran número de computadoras
  conectadas entre sí mediante una red.

• Dividir el trabajo entre varios computadoras,
  logrando de esta forma mejorar los tiempos de
  respuesta de procesamiento.
Terminologías

• Aceleración (Speedup).- Relaciona los
  tiempos de ejecución de algoritmos
  secuenciales vs. Paralelos
• Eficiencia.- Relación entre la aceleración
  de una ejecución paralela y el número de
  procesadores
• Escalabilidad.- Si al aumentar el tamaño
  del problema, el desempeño por
  procesador se mantiene.
PROBLEMA Y SOLUCIÓN
Problema actual en la ESPOL

• Las unidades no disponen de una plataforma
  que permita el análisis extensivo de datos.
• Esto limita el desarrollo de nuevos proyectos
  que necesitan procesar una gran cantidad de
  información en un tiempo razonable.
• Simulación, procesamiento de imágenes,
  biotecnología, pronóstico del tiempo, modelado
  financiero, inteligencia de negocios, son algunas
  aplicaciones que requieren de gran poder de
  procesamiento.
¿Qué nos ofrece la ESPOL?

• La ESPOL cuenta actualmente con una gran
  cantidad de recursos informáticos
  (computadoras).
• La mayor parte realizan tareas de aplicaciones
  sencillas tales como procesadores de texto,
  hojas de cálculo, navegadores, correo, entre
  otras.
• Algunas de estas computadoras se encuentran
  inactivas una cantidad considerable del tiempo.
• En su mayoría se encuentran conectadas en
  red.
Solución

• En base a esta realidad, nace la idea de
  unir estos recursos informáticos, para
  formar una “Computadora Virtual” de gran
  capacidad de procesamiento.
Objetivos

• Generar un sistema de computación distribuida
  que use los ciclos ociosos de las computadoras
  en ESPOL.
• Proveer las herramientas necesarias, que
  permitan explotar un sistema distribuido para su
  uso en la investigación y el desarrollo.
• Desarrollar una aplicación que explote las
  capacidades del supercomputador y demuestre
  sus posibles usos en la investigación.
Características del sistema
 • Dividir un problema en tareas más pequeñas
   y    distribuirlas  entre    un     grupo de
   computadoras.
 • Independiente de la plataforma.
 • Tolerante a fallos.
 • Seguro.
 • Procesamiento controlado.
 • Ser adaptable en el desarrollo de diferentes
   tipos de aplicaciones distribuidas.
 • Proveer de herramientas que faciliten la
   creación de aplicaciones distribuidas.
POSIBLES ALTERNATIVAS
Hardware

• Computadoras de alto rendimiento – más
  de 2 millones dólares, 148 megaflops.
• Supercomputadoras – más de 100
  millones dólares, 280.600 gigaflops.
• Clusters de alto rendimiento – económico
  y escalable, 1.2 millones dólares, 350
  gigaflops
  – Clusters   dedicados   y   no   dedicados
    (computación zombi).
Middleware

• PVM
  – Explota la heterogeneidad natural de             las
    computadoras.
  – Es portable.
  – Detalles de paralelización de forma explícita.
  – No es configurable por usuario.
• MPI
  – Estándar definido para sistemas MPPs inicialmente.
  – Es portable.
  – Nodos de cómputo no pueden ser agregados o
    quitados de manera dinámica.
  – No es interoperable.
BOINC

• Comparte poder computacional con
  muchas aplicaciones.
• Distribuye tareas entre los nodos del
  cluster.
• Arquitectura heterogénea.
• Seguro, tolerante a fallos, escalable.
• Configurable para usuarios.
• Código abierto.
Selección de las alternativas más apropiadas

• Cluster de alto rendimiento
  – Económico, usa computadoras disponibles.
  – No es dedicado.
  – Fácil de construir.
• Middleware BOINC
  – Alta escalabilidad.
  – Independiente de la plataforma.
  – Administra más de una aplicación distribuida.
  – Permite una fácil configuración de nodos.
DISEÑO
Diseño Lógico

                                                              SERVIDOR
           CLIENTE
                                    1

           APLICACIÓN
           DISTRIBUIDA                                       APLICACIÓN
                                                             DISTRIBUIDA




                                                          TRABAJO A REALIZAR
                                        APLICACIÓN
      1                  1
                                1       DISTRIBUIDA   1           2            3



   TRABAJO
                    RESULTADO
  A REALIZAR
                                                      RESULTADOS OBTENIDOS

                                                      1
Diseño Lógico

• Servidor
   –   Divide el problema en unidades de trabajo (más pequeñas).
   –   Distribuye estas unidades entre un grupo de computadores.
   –   Administra el procesamiento.
   –   Analiza los resultados.
• Cliente
   – Descarga aplicaciones distribuidas y unidades de trabajo.
   – Procesa las unidades de trabajo mediante la aplicación
     distribuida.
   – Muestra detalles del procesamiento.
   – Envía los resultados al servidor.
Diseño físico
                                                                 SUPERCOMPUTADOR VIRTUAL



                                                                                                • El servidor se
                                                                                                  conecta a la red del
                                                                  CLIENTE   CLIENTE   CLIENTE




           SERVIDOR
                                                                                                  CTI, posee una IP
                       CLIENTE       CLIENTE
                                                                                                  pública y un dominio
                                                                     CLIENTE   CLIENTE            registrado.
   RED DEL CTI
                                                                                                • Clientes se conectan
                                               RED DE LA ESPOL




                 CLIENTE   CLIENTE                                                                al servidor a través
                                                                                                  de la red del CTI, del
                                                                                                  backbone de la
                                                                                                  ESPOL o Internet.
CLIENTE




                     Internet
Diseño del servidor

• Base de datos.
• Servidor de tareas.
• Servidor de datos.
• Servidor Web.
• Utilidades y
  programas.
• Componentes propios
  de una aplicación.
Base de datos

• Almacena información relevante del
  sistema tales como clientes (nodos),
  unidades de trabajo, resultados,
  aplicaciones, entre otros.
Servidor de tareas

• Interactúa de manera directa con el cliente (primera comunicación).
• Asigna trabajo al cliente.
• Intercambia mensajes con el servidor de tareas, a través del
  protocolo HTTP, usando archivos XML como mensajes.
   –   Una descripción de trabajo que debe ser procesado.
   –   La ubicación del servidor de datos, en donde se almacenan los archivos de entrada y salida
       del procesamiento.
Servidor de datos
                    • Almacena
                      tanto los
                      archivos
                      entrada y
                      archivos de
                      salida de la
                      aplicación
                      distribuida.
Componentes de una aplicación

• Son aquellos programas que ejecutan
  acciones de una aplicación distribuida en
  particular.
  – Generar trabajo de cómputo.
  – Verificar y validar los resultados de cómputo.
  – Asimilar.
  – Verificar.
Utilidades y programas

• Componentes propios del sistema que nos
  ayudan a administrar el sistema en su totalidad.
• Suministrar controles para inicializar, detener,
  reiniciar y verificar el estatus del servidor.
• Suministrar aplicaciones para facilitar la
  incorporación de aplicaciones distribuidas al
  sistema y archivos relacionados a ésta.
• Crear trabajo para ser procesado.
• Borrar los archivos que no son necesarios para
  prevenir errores por insuficiencia de espacio en
  el disco.
Interacción entre los componentes
Servidor Web

•   Interfase Web para el administrador.
•   interfase Web para los usuarios
Diseño del cliente

• Encargado, entre otras cosas, de
  procesar las unidades de trabajo, y
  retornar al servidor los resultados
  computacionales obtenidos.
Núcleo del cliente

• Encargado de la comunicación con el servidor y llevar el
  control sobre el procesamiento que se está ejecutando
  en la estación cliente.
• Obtiene datos específicos de la estación de trabajo para
  ser enviados al servidor.
   – Obtener las características generales.
   – Rendimiento del CPU.
   – Recursos disponibles.
• Inicia la aplicación distribuida para procesar trabajo, o la
  reinicia si fue suspendida.
• Suspende la aplicación distribuida.
• Inicia la transferencia de archivos.
• Elimina archivos si es necesario.
Núcleo del cliente

                     • Pide trabajo
                       para procesar.
                     • Descarga las
                       unidades de
                       trabajo.
                     • Envía los
                       resultados.
                     • Notifica el
                       procesamiento.
                     • Pide más
                       trabajo
Aplicación distribuida

• Encargada de
  procesar las
  unidades de trabajo
  provenientes del
  servidor de tareas.
• Utiliza los archivos
  de entrada.
• Genera archivos de
  salida.
Aplicación distribuida

• Módulo de
  procesamiento.
  Procesa las unidades
  de trabajo y retornar un
  resultado
  computacional.
• Módulo de
  presentación gráfica.
  Muestra información
  gráfica relevante al
  procesamiento.
Interfaz gráfica

• Encargada de hacer reiteradas llamadas
  al núcleo cliente para comenzar su
  ejecución, y llevar control sobre las
  acciones que éste se encuentre
  realizando en la estación de trabajo.
• Instalada en el cliente.
IMPLEMENTACIÓ
      N
Servidor
Procesador    Intel Pentium 4 2.80GHz Socket 478 Bus
                                             800 MHz



Placa base       Intel D875 PBZLK P4 RAID 800 MHz,
                                        LAN Gigabit



Memoria RAM        1024 MB DDR PC 400 KINGSTON


Disco Duro              120 GB Serial ATA 7200 RPM


Video                 NVIDIA GFORCE 5200 128 MB


CDROM                                       CDR 52x


Periféricos                    Unidad Floppy 3 1!2” ,
                                      Mouse óptico,
                                  Teclado Multimedia

                                                        (a) Servidor   (b) Vista interna del servidor.
Monitor                                Samsung 15”


PRECIO                                    1355 USD
Instalación y configuración del servidor

• Sistema operativo Fedora Core 2.
• Agente de transporte de correo Sendmail.
• Servidor Web Apache II.
• PHP.
• Base de datos MySQL, PHPMySQL.
• Python, PyXML.
• Configuración del Firewall, permitir conexiones con el Internet a
  través de los puertos: 22 para ssh, 80 para htttp y 443 para https;
  conexiones locales con los puertos 3306 para MySQL y 21 para
  sendmail.
• IP pública 200.10.150.5 y dominio supercomp.cti.espol.edu.ec.
• Configurado para que salga la Internet a través de la red del CTI.
Instalación y configuración de BOINC

• Versión 3.04.
• Archivos fuentes
  compilados y luego
  instalados en el
  servidor.
• Se modificaron los
  archivos util.inc y
  countries.inc de
  la carpeta html.
• Conectado a la red
  del CTI.
Instalación y configuración de los clientes

• Sistema cliente BOINC
  versión 3.05.
• El cliente fue instalado en
  cada una de las cinco
  computadoras cliente de
  prueba, tres máquinas de
  ellas pertenecientes al Centro
  de Tecnologías de
  Información (CTI) y dos
  máquinas particulares
  conectadas al Internet.
• Registro de clientes al
  sistema distribuido.
• Configuración de clientes para
  procesar las unidades de
  trabajo usando los ciclos
  ociosos.
IMPLEMENTACIÓN DE
  UNA APLICACIÓN
    DISTRIBUIDA
Objetivos de la implementación

• Probar el funcionamiento del sistema.
• Evaluar el rendimiento y escalabilidad de
  nuestro sistema distribuido.
     Esta aplicación distribuida, además de ser paralelizable,
              debía buscar la solución a un problema
     de gran desafío computacional, el cual una computadora
     común no lo pueda realizar o le tome demasiado tiempo.




           Descifrado (desencriptación) de claves RSA
n



    Descifrado de claves RSA

    • Obtener una clave pública a través de una clave
      privada.
    • Basado en la dificultad de factorizar un valor
      extremadamente grande (64, 128 dígitos, por
      ejemplo), generado por la multiplicación de dos
      números primos grandes.
    • Según la Criba de Eratóstenes, los factores de
      un número n, para un número n = p x q
    • tenemos que o bien p< n o bien q < n
n



    Solución

    • El objetivo general consiste en dividir raíz
      de n en rangos mucho más pequeños y
      manejables en términos de
      procesamiento, los cuales serán
      asignados a los clientes.
    • A cada cliente se le asignará un rango de
      búsqueda diferente.
    • El cliente realizará divisiones sucesivas
      sólo dentro de su rango asignado.
Generador de archivos de entrada

• Denominado rsasplitter.
• Divide raíz de n en rangos y genera los archivos de
  entrada para la aplicación.
• Estos archivos de entrada serán convertidos en
  unidades de trabajo.
                    n: Representa el valor n de la clave pública, un numero de N dígitos.
            n
                    ninicial: Rango desde donde se comienza a hacer las divisiones
                    sucesivas.
                    nfinal: Rango hasta donde se realizan las divisiones sucesivas.
         ninicial


         nfinal
Aplicación distribuida

• Denominada rsadecrypt.
• Lee un archivo de entrada.
• Busca un factor primo en el rango especificado en el archivo de
  entrada, usando el método de divisiones sucesivas (fuerza bruta).
• Se detiene si encontró el factor primo o si termino de buscar dentro
  del rango.
• Genera un resultado computacional.

          nfinal    nfinal: Hasta que numero llegó el cliente a procesar.
                    estado: El estado del resultado, 1 si logró encontrar la clave privada,
                    0 si no encontró.

          estado
Aplicación distribuida – Parte gráfica

• Muestra
  datos
  relevantes
  del
  procesamient
  o que le
  cliente esta
  realizando.
• Mostrado
  como
  protector de
  pantalla
Interacción entre los componentes
PRUEBAS Y
RESULTADOS
Pruebas de funcionamiento

• Aplicación distribuida para descifrado de
  claves RSA, para encontrar los factores
  primos a partir del valor N de la clave
  pública.
• Se crearon los archivos de entrada para la
  aplicación distribuida -- rsasplitter
Datos para N = 12 dígitos

•   Valor de N = 700933509247.
•   Factor primo encontrado= 760531.
•   Unidades de Trabajo creadas = 5.
       Rango #1:       Rango #2:       Rango #3:

       Desde: 1        Desde: 167444   Desde: 334887
       Hasta: 167443   Hasta: 334886   Hasta: 502329
       Rango #4:       Rango #5:
       Desde: 502330   Desde: 669773
       Hasta: 669772   Hasta: 837217
Datos para N = 14 dígitos

•   Valor de N = 37095613506571.
•   Factor primo encontrado = 5393053.
•   Unidades de Trabajo creadas = 5.
       Rango #1:        Rango #2:        Rango #3:

       Desde: 1         Desde: 1218124   Desde: 2436247
       Hasta: 1218123   Hasta: 2436246   Hasta: 3654369
       Rango #4:        Rango #5:

       Desde: 3654370   Desde: 4872493
       Hasta: 4872492   Hasta: 6090616
Pruebas de funcionamiento

• Se crean las plantillas
  tanto para las unidades
  de trabajo, como para
  los resultados.
• Se observa como cada
  cliente se comunicó con
  el servidor de tareas,
  descargó las unidades
  de trabajo e inició el
  procesamiento.
Resultados

• Se utilizó como parámetro el tiempo (en
  minutos) necesario para la obtención del
  factor primo del número N.
• Se incrementó de 1 a 5 el número de
  computadoras clientes para la distribución
  del procesamiento.
Resultados para N = 12 dígitos
                         Número de                                      Tiempo en
                        Computadoras             Num/seg                 minutos
                                1                            181                    70
                                2                            333                    38
                                3                            576                    22
                                4                            667                    19
                                5                           3168                     4
                       80
                       70       70
                       60
         Tiempo(min)




                       50
                       40                38
                       30                              22
                       20                                          19

                       10
                                                                                4
                       0
                            1        2             3               4        5
                                              Computadoras
Resultados para N = 14 dígitos
                            Número de                            Tiempo en
                           Computadoras             Num/seg       minutos
                                      1                    345            260
                                      2                    642            140
                                      3                   1123                80
                                      4                   1284                70
                                      5                   4730                19
                     300

                     250        260
       Tiempo(min)




                     200

                     150                      140
                     100                                  80
                                                                     70
                     50
                                                                              19
                      0
                            1             2           3          4        5
                                                Computadoras
Resultados

• Los resultados reflejan la alta escalabilidad
  del sistema de procesamiento distribuido.
• Al incrementar el número de computadoras,
  se disminuye el tiempo en obtener el
  resultado.
• Tomar en consideración, que el número de
  unidades a ser creadas debe ser mayor o
  igual al número de clientes en el sistema.
No distribuido

                          N=12                    N=14
     Computadora
                    Num/seg      T (min)    Num/seg      T (min)
          1              186           68        360         249
          2              186           68        393         258
          3              218           64        413         230
          4              232           60        457         222
          5              101          138        201         505
       Promedio          192           80        374         292



      La ejecución se realizó en 5 distintas computadoras
                        independientes
Aceleración y Eficiencia
                                                                   ACELERACIÓN (SPEEDUP)
                                            15



                                            10




                                        Tiempo
                   Aceleración                   5
                   (Speedup)
# Computadoras   N=12     N=14                   0
                                                          1          2            3            4       5
                                                     SpeedUp N=12        Computadoras
      1            0.78          0.75                SpeedUp N=14

      2            1.44          1.41                                        EFICIENCIA

      3            2.48          2.46       300%

      4            2.88          2.81       250%
                                            200%

      5           13.65      10.35          150%
                                            100%
                                                 50%
                                                 0%
                                                              1          2            3            4       5
                                                       Eficiencia N=12         Com putadoras
                                                       Eficiencia N=14
DEMOSTRACIÓN
CONCLUSIONES Y
RECOMENDACIONE
       S
Conclusiones
• Es una alternativa efectiva dentro de la
  ESPOL, con costos de instalación y
  operación bajos, y resultados bastante
  aceptables.
• Puede superar en poder de procesamiento a
  sistemas de súper cómputo convencionales.
• Es altamente escalable.
• Protector de pantalla con muchos gráficos,
  hace que disminuya su capacidad de
  procesamiento.
Conclusiones

• La aceleración también depende del
  tiempo de comunicación con las
  estaciones.
• Se pueden aprovechar de manera
  efectiva los ciclos ociosos de las
  computadoras, logrando contribuir en la
  búsqueda de soluciones a grandes
  problemas de procesamiento.
Recomendaciones

• Promocionar a nivel interno y externo el
  servicio de computación distribuida
  desarrollado.
• Brindar cursos o talleres de la
  computación distribuida a los
  investigadores y profesores de la ESPOL.
• Promover a la comunidad científica de la
  ESPOL e investigadores externos, el
  desarrollo de aplicaciones distribuidas
Recomendaciones

• Incorporar dentro de la materia “Sistemas
  Distribuidos” el concepto de Computación
  Voluntaria y desarrollar proyectos
  utilizando la plataforma BOINC.
• Proponer la creación a futuro de un centro
  de alto rendimiento computacional.
PREGUNTAS
GRACIAS

Weitere ähnliche Inhalte

Was ist angesagt?

Solución Contact Center CLIENTING
Solución Contact Center CLIENTINGSolución Contact Center CLIENTING
Solución Contact Center CLIENTINGDinko Kurte
 
Solución de virtualización de desktop de Dell
Solución de virtualización de desktop de DellSolución de virtualización de desktop de Dell
Solución de virtualización de desktop de DellDellLatam
 
Foment cloud computing - iaa s
Foment    cloud computing - iaa sFoment    cloud computing - iaa s
Foment cloud computing - iaa sMICProductivity
 
Sql 2005 guia_precios_licencias
Sql 2005 guia_precios_licenciasSql 2005 guia_precios_licencias
Sql 2005 guia_precios_licenciasSebastian morales
 
TALLER DE DISEÑO FASE I
TALLER DE DISEÑO FASE ITALLER DE DISEÑO FASE I
TALLER DE DISEÑO FASE IUnimag
 
Evaluación y administración de proyectos
Evaluación y administración de proyectosEvaluación y administración de proyectos
Evaluación y administración de proyectosmiguel ivan garcia
 
Normalizacion de sucursales retail en Patagonia Argentina
Normalizacion de sucursales retail en Patagonia ArgentinaNormalizacion de sucursales retail en Patagonia Argentina
Normalizacion de sucursales retail en Patagonia ArgentinaJuan Moratto
 
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?GeneXus
 
Soluciones de Redes Dell
Soluciones de Redes DellSoluciones de Redes Dell
Soluciones de Redes DellDellLatam
 
Analisis de objetivos tecnicos
Analisis de objetivos tecnicosAnalisis de objetivos tecnicos
Analisis de objetivos tecnicoskaguyaluna
 
Aterrizando la nube euro cloud
Aterrizando la nube euro cloudAterrizando la nube euro cloud
Aterrizando la nube euro cloudInside_Marketing
 
Datamemoryusa Presentacion virtual desktop 5 19 10
Datamemoryusa Presentacion virtual desktop 5 19 10Datamemoryusa Presentacion virtual desktop 5 19 10
Datamemoryusa Presentacion virtual desktop 5 19 10datamemoryusa
 
Advanced Infrastructure Manager (AIM)
Advanced Infrastructure Manager (AIM)Advanced Infrastructure Manager (AIM)
Advanced Infrastructure Manager (AIM)DellLatam
 

Was ist angesagt? (16)

Solución Contact Center CLIENTING
Solución Contact Center CLIENTINGSolución Contact Center CLIENTING
Solución Contact Center CLIENTING
 
Solución de virtualización de desktop de Dell
Solución de virtualización de desktop de DellSolución de virtualización de desktop de Dell
Solución de virtualización de desktop de Dell
 
Foment cloud computing - iaa s
Foment    cloud computing - iaa sFoment    cloud computing - iaa s
Foment cloud computing - iaa s
 
133c97 cloud computing
133c97 cloud computing133c97 cloud computing
133c97 cloud computing
 
Sql 2005 guia_precios_licencias
Sql 2005 guia_precios_licenciasSql 2005 guia_precios_licencias
Sql 2005 guia_precios_licencias
 
TALLER DE DISEÑO FASE I
TALLER DE DISEÑO FASE ITALLER DE DISEÑO FASE I
TALLER DE DISEÑO FASE I
 
Evaluación y administración de proyectos
Evaluación y administración de proyectosEvaluación y administración de proyectos
Evaluación y administración de proyectos
 
Normalizacion de sucursales retail en Patagonia Argentina
Normalizacion de sucursales retail en Patagonia ArgentinaNormalizacion de sucursales retail en Patagonia Argentina
Normalizacion de sucursales retail en Patagonia Argentina
 
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
¿Cómo aprovechar los $4.3B de Inversión en R&D de Oracle?
 
Sql Data Services
Sql Data ServicesSql Data Services
Sql Data Services
 
Soluciones de Redes Dell
Soluciones de Redes DellSoluciones de Redes Dell
Soluciones de Redes Dell
 
Analisis de objetivos tecnicos
Analisis de objetivos tecnicosAnalisis de objetivos tecnicos
Analisis de objetivos tecnicos
 
Aterrizando la nube euro cloud
Aterrizando la nube euro cloudAterrizando la nube euro cloud
Aterrizando la nube euro cloud
 
Cloud Computing Principals
Cloud Computing PrincipalsCloud Computing Principals
Cloud Computing Principals
 
Datamemoryusa Presentacion virtual desktop 5 19 10
Datamemoryusa Presentacion virtual desktop 5 19 10Datamemoryusa Presentacion virtual desktop 5 19 10
Datamemoryusa Presentacion virtual desktop 5 19 10
 
Advanced Infrastructure Manager (AIM)
Advanced Infrastructure Manager (AIM)Advanced Infrastructure Manager (AIM)
Advanced Infrastructure Manager (AIM)
 

Ähnlich wie 7984 (1) (20)

7984
79847984
7984
 
7984
79847984
7984
 
tema1 clase 1
tema1 clase 1tema1 clase 1
tema1 clase 1
 
7984
79847984
7984
 
7984
79847984
7984
 
7984
79847984
7984
 
7984
79847984
7984
 
7984
79847984
7984
 
COMPUTACION AVANZADA
COMPUTACION AVANZADACOMPUTACION AVANZADA
COMPUTACION AVANZADA
 
7984
79847984
7984
 
COMPUTACION AVANZADA
COMPUTACION AVANZADACOMPUTACION AVANZADA
COMPUTACION AVANZADA
 
Computación Avanzada
Computación AvanzadaComputación Avanzada
Computación Avanzada
 
Computacion Avanzada
Computacion AvanzadaComputacion Avanzada
Computacion Avanzada
 
7984
79847984
7984
 
7984
79847984
7984
 
7984
79847984
7984
 
7984
7984 7984
7984
 
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
 
Computación distribuida y su aplicación tecnológic
Computación distribuida y su aplicación tecnológicComputación distribuida y su aplicación tecnológic
Computación distribuida y su aplicación tecnológic
 
Computación distribuida y su aplicación tecnológic
Computación distribuida y su aplicación tecnológicComputación distribuida y su aplicación tecnológic
Computación distribuida y su aplicación tecnológic
 

7984 (1)

  • 1. “COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA PARA INCREMENTAR LA EFICIENCIA DEL USO DE RECURSOS INFORMÁTICOS EN RED DE LA ESPOL” Luis Vargas V. Gonzalo Luzardo M.
  • 2. Agenda • Antecedentes. • Problema y solución. • Posibles alternativas. • Diseño. • Implementación. • Pruebas y resultados. • Demostración. • Conclusiones y recomendaciones.
  • 4. Antecedentes • Existen proyectos de investigación que deben analizar gran cantidad de datos; renderización de imágenes, simulación de fenómenos naturales, redes neuronales, son algunos ejemplos. • Necesitan computadoras de gran capacidad de procesamiento.
  • 5. Antecedentes • LA IBM BLUE GENE/L , utilizada para aplicaciones de hidrodinámica, química cuántica, dinámica molecular, astronomía e Su construcción tuvo un costo investigación aproximado de 150 millones de espacial, y modelado dólares. climático.
  • 6. Antecedentes • Existen otras alternativas que permiten unir el poder de procesamiento de un conjunto de computadoras disponibles en una red. • Este nuevo paradigma se llama Computación Distribuida.
  • 7. Computación Distribuida • La computación distribuida, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadoras conectadas entre sí mediante una red. • Dividir el trabajo entre varios computadoras, logrando de esta forma mejorar los tiempos de respuesta de procesamiento.
  • 8. Terminologías • Aceleración (Speedup).- Relaciona los tiempos de ejecución de algoritmos secuenciales vs. Paralelos • Eficiencia.- Relación entre la aceleración de una ejecución paralela y el número de procesadores • Escalabilidad.- Si al aumentar el tamaño del problema, el desempeño por procesador se mantiene.
  • 10. Problema actual en la ESPOL • Las unidades no disponen de una plataforma que permita el análisis extensivo de datos. • Esto limita el desarrollo de nuevos proyectos que necesitan procesar una gran cantidad de información en un tiempo razonable. • Simulación, procesamiento de imágenes, biotecnología, pronóstico del tiempo, modelado financiero, inteligencia de negocios, son algunas aplicaciones que requieren de gran poder de procesamiento.
  • 11. ¿Qué nos ofrece la ESPOL? • La ESPOL cuenta actualmente con una gran cantidad de recursos informáticos (computadoras). • La mayor parte realizan tareas de aplicaciones sencillas tales como procesadores de texto, hojas de cálculo, navegadores, correo, entre otras. • Algunas de estas computadoras se encuentran inactivas una cantidad considerable del tiempo. • En su mayoría se encuentran conectadas en red.
  • 12. Solución • En base a esta realidad, nace la idea de unir estos recursos informáticos, para formar una “Computadora Virtual” de gran capacidad de procesamiento.
  • 13. Objetivos • Generar un sistema de computación distribuida que use los ciclos ociosos de las computadoras en ESPOL. • Proveer las herramientas necesarias, que permitan explotar un sistema distribuido para su uso en la investigación y el desarrollo. • Desarrollar una aplicación que explote las capacidades del supercomputador y demuestre sus posibles usos en la investigación.
  • 14. Características del sistema • Dividir un problema en tareas más pequeñas y distribuirlas entre un grupo de computadoras. • Independiente de la plataforma. • Tolerante a fallos. • Seguro. • Procesamiento controlado. • Ser adaptable en el desarrollo de diferentes tipos de aplicaciones distribuidas. • Proveer de herramientas que faciliten la creación de aplicaciones distribuidas.
  • 16. Hardware • Computadoras de alto rendimiento – más de 2 millones dólares, 148 megaflops. • Supercomputadoras – más de 100 millones dólares, 280.600 gigaflops. • Clusters de alto rendimiento – económico y escalable, 1.2 millones dólares, 350 gigaflops – Clusters dedicados y no dedicados (computación zombi).
  • 17. Middleware • PVM – Explota la heterogeneidad natural de las computadoras. – Es portable. – Detalles de paralelización de forma explícita. – No es configurable por usuario. • MPI – Estándar definido para sistemas MPPs inicialmente. – Es portable. – Nodos de cómputo no pueden ser agregados o quitados de manera dinámica. – No es interoperable.
  • 18. BOINC • Comparte poder computacional con muchas aplicaciones. • Distribuye tareas entre los nodos del cluster. • Arquitectura heterogénea. • Seguro, tolerante a fallos, escalable. • Configurable para usuarios. • Código abierto.
  • 19. Selección de las alternativas más apropiadas • Cluster de alto rendimiento – Económico, usa computadoras disponibles. – No es dedicado. – Fácil de construir. • Middleware BOINC – Alta escalabilidad. – Independiente de la plataforma. – Administra más de una aplicación distribuida. – Permite una fácil configuración de nodos.
  • 21. Diseño Lógico SERVIDOR CLIENTE 1 APLICACIÓN DISTRIBUIDA APLICACIÓN DISTRIBUIDA TRABAJO A REALIZAR APLICACIÓN 1 1 1 DISTRIBUIDA 1 2 3 TRABAJO RESULTADO A REALIZAR RESULTADOS OBTENIDOS 1
  • 22. Diseño Lógico • Servidor – Divide el problema en unidades de trabajo (más pequeñas). – Distribuye estas unidades entre un grupo de computadores. – Administra el procesamiento. – Analiza los resultados. • Cliente – Descarga aplicaciones distribuidas y unidades de trabajo. – Procesa las unidades de trabajo mediante la aplicación distribuida. – Muestra detalles del procesamiento. – Envía los resultados al servidor.
  • 23. Diseño físico SUPERCOMPUTADOR VIRTUAL • El servidor se conecta a la red del CLIENTE CLIENTE CLIENTE SERVIDOR CTI, posee una IP CLIENTE CLIENTE pública y un dominio CLIENTE CLIENTE registrado. RED DEL CTI • Clientes se conectan RED DE LA ESPOL CLIENTE CLIENTE al servidor a través de la red del CTI, del backbone de la ESPOL o Internet. CLIENTE Internet
  • 24. Diseño del servidor • Base de datos. • Servidor de tareas. • Servidor de datos. • Servidor Web. • Utilidades y programas. • Componentes propios de una aplicación.
  • 25. Base de datos • Almacena información relevante del sistema tales como clientes (nodos), unidades de trabajo, resultados, aplicaciones, entre otros.
  • 26. Servidor de tareas • Interactúa de manera directa con el cliente (primera comunicación). • Asigna trabajo al cliente. • Intercambia mensajes con el servidor de tareas, a través del protocolo HTTP, usando archivos XML como mensajes. – Una descripción de trabajo que debe ser procesado. – La ubicación del servidor de datos, en donde se almacenan los archivos de entrada y salida del procesamiento.
  • 27. Servidor de datos • Almacena tanto los archivos entrada y archivos de salida de la aplicación distribuida.
  • 28. Componentes de una aplicación • Son aquellos programas que ejecutan acciones de una aplicación distribuida en particular. – Generar trabajo de cómputo. – Verificar y validar los resultados de cómputo. – Asimilar. – Verificar.
  • 29. Utilidades y programas • Componentes propios del sistema que nos ayudan a administrar el sistema en su totalidad. • Suministrar controles para inicializar, detener, reiniciar y verificar el estatus del servidor. • Suministrar aplicaciones para facilitar la incorporación de aplicaciones distribuidas al sistema y archivos relacionados a ésta. • Crear trabajo para ser procesado. • Borrar los archivos que no son necesarios para prevenir errores por insuficiencia de espacio en el disco.
  • 30. Interacción entre los componentes
  • 31. Servidor Web • Interfase Web para el administrador. • interfase Web para los usuarios
  • 32. Diseño del cliente • Encargado, entre otras cosas, de procesar las unidades de trabajo, y retornar al servidor los resultados computacionales obtenidos.
  • 33. Núcleo del cliente • Encargado de la comunicación con el servidor y llevar el control sobre el procesamiento que se está ejecutando en la estación cliente. • Obtiene datos específicos de la estación de trabajo para ser enviados al servidor. – Obtener las características generales. – Rendimiento del CPU. – Recursos disponibles. • Inicia la aplicación distribuida para procesar trabajo, o la reinicia si fue suspendida. • Suspende la aplicación distribuida. • Inicia la transferencia de archivos. • Elimina archivos si es necesario.
  • 34. Núcleo del cliente • Pide trabajo para procesar. • Descarga las unidades de trabajo. • Envía los resultados. • Notifica el procesamiento. • Pide más trabajo
  • 35. Aplicación distribuida • Encargada de procesar las unidades de trabajo provenientes del servidor de tareas. • Utiliza los archivos de entrada. • Genera archivos de salida.
  • 36. Aplicación distribuida • Módulo de procesamiento. Procesa las unidades de trabajo y retornar un resultado computacional. • Módulo de presentación gráfica. Muestra información gráfica relevante al procesamiento.
  • 37. Interfaz gráfica • Encargada de hacer reiteradas llamadas al núcleo cliente para comenzar su ejecución, y llevar control sobre las acciones que éste se encuentre realizando en la estación de trabajo. • Instalada en el cliente.
  • 39. Servidor Procesador Intel Pentium 4 2.80GHz Socket 478 Bus 800 MHz Placa base Intel D875 PBZLK P4 RAID 800 MHz, LAN Gigabit Memoria RAM 1024 MB DDR PC 400 KINGSTON Disco Duro 120 GB Serial ATA 7200 RPM Video NVIDIA GFORCE 5200 128 MB CDROM CDR 52x Periféricos Unidad Floppy 3 1!2” , Mouse óptico, Teclado Multimedia (a) Servidor (b) Vista interna del servidor. Monitor Samsung 15” PRECIO 1355 USD
  • 40. Instalación y configuración del servidor • Sistema operativo Fedora Core 2. • Agente de transporte de correo Sendmail. • Servidor Web Apache II. • PHP. • Base de datos MySQL, PHPMySQL. • Python, PyXML. • Configuración del Firewall, permitir conexiones con el Internet a través de los puertos: 22 para ssh, 80 para htttp y 443 para https; conexiones locales con los puertos 3306 para MySQL y 21 para sendmail. • IP pública 200.10.150.5 y dominio supercomp.cti.espol.edu.ec. • Configurado para que salga la Internet a través de la red del CTI.
  • 41. Instalación y configuración de BOINC • Versión 3.04. • Archivos fuentes compilados y luego instalados en el servidor. • Se modificaron los archivos util.inc y countries.inc de la carpeta html. • Conectado a la red del CTI.
  • 42. Instalación y configuración de los clientes • Sistema cliente BOINC versión 3.05. • El cliente fue instalado en cada una de las cinco computadoras cliente de prueba, tres máquinas de ellas pertenecientes al Centro de Tecnologías de Información (CTI) y dos máquinas particulares conectadas al Internet. • Registro de clientes al sistema distribuido. • Configuración de clientes para procesar las unidades de trabajo usando los ciclos ociosos.
  • 43. IMPLEMENTACIÓN DE UNA APLICACIÓN DISTRIBUIDA
  • 44. Objetivos de la implementación • Probar el funcionamiento del sistema. • Evaluar el rendimiento y escalabilidad de nuestro sistema distribuido. Esta aplicación distribuida, además de ser paralelizable, debía buscar la solución a un problema de gran desafío computacional, el cual una computadora común no lo pueda realizar o le tome demasiado tiempo. Descifrado (desencriptación) de claves RSA
  • 45. n Descifrado de claves RSA • Obtener una clave pública a través de una clave privada. • Basado en la dificultad de factorizar un valor extremadamente grande (64, 128 dígitos, por ejemplo), generado por la multiplicación de dos números primos grandes. • Según la Criba de Eratóstenes, los factores de un número n, para un número n = p x q • tenemos que o bien p< n o bien q < n
  • 46. n Solución • El objetivo general consiste en dividir raíz de n en rangos mucho más pequeños y manejables en términos de procesamiento, los cuales serán asignados a los clientes. • A cada cliente se le asignará un rango de búsqueda diferente. • El cliente realizará divisiones sucesivas sólo dentro de su rango asignado.
  • 47. Generador de archivos de entrada • Denominado rsasplitter. • Divide raíz de n en rangos y genera los archivos de entrada para la aplicación. • Estos archivos de entrada serán convertidos en unidades de trabajo. n: Representa el valor n de la clave pública, un numero de N dígitos. n ninicial: Rango desde donde se comienza a hacer las divisiones sucesivas. nfinal: Rango hasta donde se realizan las divisiones sucesivas. ninicial nfinal
  • 48. Aplicación distribuida • Denominada rsadecrypt. • Lee un archivo de entrada. • Busca un factor primo en el rango especificado en el archivo de entrada, usando el método de divisiones sucesivas (fuerza bruta). • Se detiene si encontró el factor primo o si termino de buscar dentro del rango. • Genera un resultado computacional. nfinal nfinal: Hasta que numero llegó el cliente a procesar. estado: El estado del resultado, 1 si logró encontrar la clave privada, 0 si no encontró. estado
  • 49. Aplicación distribuida – Parte gráfica • Muestra datos relevantes del procesamient o que le cliente esta realizando. • Mostrado como protector de pantalla
  • 50. Interacción entre los componentes
  • 52. Pruebas de funcionamiento • Aplicación distribuida para descifrado de claves RSA, para encontrar los factores primos a partir del valor N de la clave pública. • Se crearon los archivos de entrada para la aplicación distribuida -- rsasplitter
  • 53. Datos para N = 12 dígitos • Valor de N = 700933509247. • Factor primo encontrado= 760531. • Unidades de Trabajo creadas = 5. Rango #1: Rango #2: Rango #3: Desde: 1 Desde: 167444 Desde: 334887 Hasta: 167443 Hasta: 334886 Hasta: 502329 Rango #4: Rango #5: Desde: 502330 Desde: 669773 Hasta: 669772 Hasta: 837217
  • 54. Datos para N = 14 dígitos • Valor de N = 37095613506571. • Factor primo encontrado = 5393053. • Unidades de Trabajo creadas = 5. Rango #1: Rango #2: Rango #3: Desde: 1 Desde: 1218124 Desde: 2436247 Hasta: 1218123 Hasta: 2436246 Hasta: 3654369 Rango #4: Rango #5: Desde: 3654370 Desde: 4872493 Hasta: 4872492 Hasta: 6090616
  • 55. Pruebas de funcionamiento • Se crean las plantillas tanto para las unidades de trabajo, como para los resultados. • Se observa como cada cliente se comunicó con el servidor de tareas, descargó las unidades de trabajo e inició el procesamiento.
  • 56. Resultados • Se utilizó como parámetro el tiempo (en minutos) necesario para la obtención del factor primo del número N. • Se incrementó de 1 a 5 el número de computadoras clientes para la distribución del procesamiento.
  • 57. Resultados para N = 12 dígitos Número de Tiempo en Computadoras Num/seg minutos 1 181 70 2 333 38 3 576 22 4 667 19 5 3168 4 80 70 70 60 Tiempo(min) 50 40 38 30 22 20 19 10 4 0 1 2 3 4 5 Computadoras
  • 58. Resultados para N = 14 dígitos Número de Tiempo en Computadoras Num/seg minutos 1 345 260 2 642 140 3 1123 80 4 1284 70 5 4730 19 300 250 260 Tiempo(min) 200 150 140 100 80 70 50 19 0 1 2 3 4 5 Computadoras
  • 59. Resultados • Los resultados reflejan la alta escalabilidad del sistema de procesamiento distribuido. • Al incrementar el número de computadoras, se disminuye el tiempo en obtener el resultado. • Tomar en consideración, que el número de unidades a ser creadas debe ser mayor o igual al número de clientes en el sistema.
  • 60. No distribuido N=12 N=14 Computadora Num/seg T (min) Num/seg T (min) 1 186 68 360 249 2 186 68 393 258 3 218 64 413 230 4 232 60 457 222 5 101 138 201 505 Promedio 192 80 374 292 La ejecución se realizó en 5 distintas computadoras independientes
  • 61. Aceleración y Eficiencia ACELERACIÓN (SPEEDUP) 15 10 Tiempo Aceleración 5 (Speedup) # Computadoras N=12 N=14 0 1 2 3 4 5 SpeedUp N=12 Computadoras 1 0.78 0.75 SpeedUp N=14 2 1.44 1.41 EFICIENCIA 3 2.48 2.46 300% 4 2.88 2.81 250% 200% 5 13.65 10.35 150% 100% 50% 0% 1 2 3 4 5 Eficiencia N=12 Com putadoras Eficiencia N=14
  • 64. Conclusiones • Es una alternativa efectiva dentro de la ESPOL, con costos de instalación y operación bajos, y resultados bastante aceptables. • Puede superar en poder de procesamiento a sistemas de súper cómputo convencionales. • Es altamente escalable. • Protector de pantalla con muchos gráficos, hace que disminuya su capacidad de procesamiento.
  • 65. Conclusiones • La aceleración también depende del tiempo de comunicación con las estaciones. • Se pueden aprovechar de manera efectiva los ciclos ociosos de las computadoras, logrando contribuir en la búsqueda de soluciones a grandes problemas de procesamiento.
  • 66. Recomendaciones • Promocionar a nivel interno y externo el servicio de computación distribuida desarrollado. • Brindar cursos o talleres de la computación distribuida a los investigadores y profesores de la ESPOL. • Promover a la comunidad científica de la ESPOL e investigadores externos, el desarrollo de aplicaciones distribuidas
  • 67. Recomendaciones • Incorporar dentro de la materia “Sistemas Distribuidos” el concepto de Computación Voluntaria y desarrollar proyectos utilizando la plataforma BOINC. • Proponer la creación a futuro de un centro de alto rendimiento computacional.