Paralelización del
algoritmo de
Smith-Waterman
Luis Belloch Gómez
Bioinformática, Mayo 2010
Master Computación Paralela y Distribuida
BLAST y similares son más rápidos, pero pueden no
          detectar algunas alineaciones.


Smith-Waterman es más preciso, pero su ejecución
             es mucho más lenta.
-   H    E    A    G    A    W    G    H    E    E

              -   0   0    0    0    0    0    0    0    0    0    0
)
              P   0   0    0    0    0    0    0    0    0    0    0

              A   0   0    0    5    0    5    0    0    0    0    0

              W   0   0    0    0    2    0    20   12   4    0    0

              H   0   10   2    0    0    0    12   18   22   14   6

              E   0   2    16   8    0    0    4    10   18   21   20

              A   0   0    8    21   13   5    0    4    10   20   27

              E   0   0    6    13   18   12   4    0    4    16   26




            1. Construcción de la matriz de puntuación.
            2. Recorrido inverso a partir del máximo.
    E   F
Para poder ejecutar en paralelo es necesario saber
        qué dependencias de datos existen
E      0       0   6    13    18   12   4   0       4


  Análisis de dependencias

                                                     -   H

                                                 -   0   0
             A(i-1,j-1)     A(i-1,j)
                                                 P   0   0

                                                 A   0   0
             A(i,j-1)       A(i,j)
                                                 W   0   0

                                                 H   0   10

                                                 E   0   2

Cada elemento depende de su fila superior
                                       A             0   0
         y su columna izquierda.       E             0   0
Análisis de dependencias
               P1        P2

               A          B


               B          C



        Si ordenáramos la ejecución,
los elemento B pueden ejecutarse en paralelo
F   G   H        I    J   K




                     Ejecución por bloques
                          -   H    E    A    G    A    W    G    H    E    E

                      -   0   0    0    0    0    0    0    0    0    0    0

                      P   0   0    0    0    0    0    0    0    0    0    0

            P1        A   0   0    0    5    0    5    0    0    0    0    0

                      W   0   0    0    0    2    0    20   12   4    0    0

                      H   0   10   2    0    0    0    12   18   22   14   6

            P2        E   0   2    16   8    0    0    4    10   18   21   20

                      A   0   0    8    21   13   5    0    4    10   20   27

            P3        E   0   0    6    13   4    10   4    0    4    16   26




            Para evitar un envío excesivo de datos,
                se divide la matriz en bloques
                          -   H    E    A    G    A    W    G    H    E    E

                      -   0   0    0    0    0    0    0    0    0    0    0

                      P   0   0    0    0    0    0    0    0    0    0    0
P2    E   0   2    16   8    0    0    4    10   18   21   20

          A   0   0    8    21   13   5    0    4    10   20   27

    P3
         Ejecución por bloques
          E   0   0    6    13   4    10   4    0    4    16   26




              -   H    E    A    G    A    W    G    H    E    E

          -   0   0    0    0    0    0    0    0    0    0    0

          P   0   0    0    0    0    0    0    0    0    0    0

    P1    A   0   0    0    5    0    5    0    0    0    0    0
                                                                    envío de datos
          W   0   0    0    0    2    0    20   12   4    0    0       de P1 a P2
          H   0   10   2    0    0    0    12   18   22   14   6

   P2     E   0   2    16   8    0    0    4    10   18   21   20
                                                                    envío de datos
          A   0   0    8    21   13   5    0    4    10   20   27      de P3 a P4

   P3     E   0   0    6    13   4    10   4    0    4    16   26




Cada proceso comparte su última fila con el resto
A        0           0       8    21      13          5   0   4   10   20   27
                                E   0    0        6     13 18 12   4  0   4   16 26
                                              E        0   0  6  13 18 12   4   0  4                                 16   26



                Ejecución por bloques

B   C   A D B   E C   F D       E   F
                                                      P1                       P1
C   D   B E C   F D   G E       F   G

        C F D                                         P2                       P2
D   E           G E   H F       G   H

E   F   D G E   H F   I G       H   I
                                                      P3                       P3
F   G   E H F   I G   J H       I   J

        F I G                                         P4                       P4
G   H           J H   K I       J   K




    La ejecución se realiza en cascada, como máximo
        existirán max(c,f) procesos en paralelo
                                    -    H    E            A       G       A        W       G       H   E   E
                      -     H   E    A    G       A            W       G       H        E       E
                                -   0    0    0            0       0       0        0       0       0   0   0
Detalles Implementación
         Paradigma: Memoria Distribuida.
            Desarrollado en C & MPI.
  La matriz de puntuación es un vector de c x f
        enteros, contiguos en memoria.
 En lugar de almacenar la matriz de dirección por
separado, se empaqueta en los dos bits superiores.

          00          bits 29 a 0
Entorno de pruebas
        Quadcluster del DSIC
       SGI Altix XE, 4 nodos


             Cada nodo
2 Intel Xeon Quadcore 5365 (64 bits)
          8 cores por nodo
             16 GB RAM


  Total 32 procesadores (nucleos)
Estructura de pruebas
El coste del algoritmo está en la construcción de la
                matriz de puntuación.
     Secuencias de 100, 3K y 30K elementos,
              sacadas de Uniprot.

      HBA_HUMAN.fasta
                                  142 x 147
      HBB_HUMAN.fasta

      FBN2_HUMAN.fasta
                                2.912 x 2.907
      FBN2_MOUSE.fasta

     TITIN_HUMAN.fasta
                               34.350 x 35.213
     TITIN_MOUSE.fasta
Coste Espacial

 Una secuencia de 30K elementos produce una
matriz de 30K x 30K = 900 millones de elementos.


            900 x 4bytes ≅ 3.35GB


   Repartidos entre 32 procesadores, cada uno
construye una matriz de 30K x (30K/32) ≅ 100MB
Resultados secuencial


icc test2.c util.c sw.c -o test2 -std=c99 -O3
./test2
Prueba de rendimiento secuencial (matriz puntuación   solo).
t25a.s   t25b.s    la:    25 lb:     25   it:1000     tst: 1   T:     0.01   ms
t100a.s t100b.s    la:   140 lb:    140   it:1000     tst: 1   T:     0.16   ms
t3Ka.s   t3Kb.s    la: 2912 lb: 2907      it:1        tst: 1   T:    75.00   ms
t30Ka.s t30Kb.s    la: 34350 lb: 35213    it:1        tst: 1   T: 11000.00   ms
Resultados paralelo
     TITIN HumanMouse, 34Kx35K elementos
         4.5GB total, 140MB por proceso




np     ts       tp            Sp            Ep
 4       11     2,641         4,165         1,041
 8       11     1,365         8,059         1,007
16       11     0,709        15,507         0,969
24       11     0,493        22,324         0,930
32       11     0,389        28,292         0,884
                                          * tiempos en seg.
4            11   2,64114     4,16     4,00       1,04    1,00
  8            11   1,36494     8,06     8,00       1,01    1,00
  16
  24
  32
               11
               11
               11
                    Speed Up
                    0,70934
                    0,49275
                    0,38880
                               15,51
                               22,32
                               28,29
                                        16,00
                                        24,00
                                        32,00
                                                    0,97
                                                    0,93
                                                    0,88
                                                            1,00
                                                            1,00
                                                            1,00


Tiempo del mejor algoritmo secuencial frente al
     tiempo del paralelo (sp = t1 / tp)
       40,00
       35,00
       30,00
       25,00                                        28,29

       20,00                               22,32
       15,00
                                15,51
       10,00
        5,00          8,06

          0 4,16
             4          8        16         24       32

                    Speed Up              Sp ref.
0                   4           11   2,641     4,165        1,041
0                   8           11   1,365     8,059        1,007
0                   16          11   0,709    15,507        0,969
0
0
                    24
                    32
                          Eficiencia
                                11
                                11
                                     0,493
                                     0,389
                                              22,324
                                              28,292
                                                            0,930
                                                            0,884




    Grado de utilización del sistema (ep = sp/p)
        1,10


        1,00 1,04
                         1,01
                                       0,97
        0,90                                           0,93
                                                                    0,88

        0,80


        0,70
               4          8             16             24           32

                         Eficiencia                Ep ref.
Conclusiones


La paralelización funciona mejor con tamaños de
problema grandes, el algoritmo secuencial se las
         arregla para secuencias cortas.


          Posibles trabajos futuros:
   Memoria compartida o sistemas híbridos.
Paralelización del algoritmo de Smith-Waterman

Más contenido relacionado

PDF
SQL Server Key Word
DOC
Hv ines jojoa_maldonado_a2
PDF
Aplico los recursos de word
PDF
CONTRAINFORMACION MEDIOS ALTERNATIVOS PARA LA ACCION POLÍTICA
ODT
La jefa de la banda jonn
SQL Server Key Word
Hv ines jojoa_maldonado_a2
Aplico los recursos de word
CONTRAINFORMACION MEDIOS ALTERNATIVOS PARA LA ACCION POLÍTICA
La jefa de la banda jonn

Destacado (16)

PDF
Fisiogramas
DOCX
CV Eng Qasim A Irshid 8 Feb 2016
PDF
Präsentation Immobiliengespräch 11.05.2010
PDF
Guía para profesionales y agentes sociales
PPT
umanian life insurance
PDF
Oil & Gas Magazine Septiembre 2014
PDF
Rajeevdetails
PPTX
estructuras textuales de carlos merchan
PDF
GRAND DEFI
RTF
Resume of PROF DR SHAHMURAD of FMDC ATD
PDF
Aprendizaje Digital Vii
PPTX
Cataratas Del Iguazú
PDF
Retos de la calidad de la educación: perspectivas latinoamericanas
PPT
Muebles Ecologicos
PDF
110851259 rogacion-de-cabeza
PDF
Pautes per elaborar, estructurar i redactar un TFM o una tesi doctoral
Fisiogramas
CV Eng Qasim A Irshid 8 Feb 2016
Präsentation Immobiliengespräch 11.05.2010
Guía para profesionales y agentes sociales
umanian life insurance
Oil & Gas Magazine Septiembre 2014
Rajeevdetails
estructuras textuales de carlos merchan
GRAND DEFI
Resume of PROF DR SHAHMURAD of FMDC ATD
Aprendizaje Digital Vii
Cataratas Del Iguazú
Retos de la calidad de la educación: perspectivas latinoamericanas
Muebles Ecologicos
110851259 rogacion-de-cabeza
Pautes per elaborar, estructurar i redactar un TFM o una tesi doctoral
Publicidad

Similar a Paralelización del algoritmo de Smith-Waterman (20)

PDF
2do Laboratorio De Sistemas Digitales
PDF
Multiplexeo dedisplay
PPT
PDF
Estructuras Discretas II
PDF
Tarea1 normalizacion discos_administrador_de_buffer
PDF
Taller Grafos - 2 corte - grupo 8DN -Matemáticas Discretas
PPT
Ejercicios Grafos digrafos AS
DOCX
Practica 3 d digitales
PDF
Grupo CGI - Consultoría. Estudios de potencial y necesidades urbanísticas, y ...
DOCX
Conferencia n°7
DOCX
Ejercicios propuestos de grafos y digrafos
PDF
DOCX
PDF
Procesamiento de Resultados en AWK
DOCX
Estructuras discretas
PDF
Grafos y digrafos
DOCX
Estructuras discretas ii trabajo grafos_ maribel_hernandez
DOCX
Puebe de programacion
ODT
Correcion de mfsi
2do Laboratorio De Sistemas Digitales
Multiplexeo dedisplay
Estructuras Discretas II
Tarea1 normalizacion discos_administrador_de_buffer
Taller Grafos - 2 corte - grupo 8DN -Matemáticas Discretas
Ejercicios Grafos digrafos AS
Practica 3 d digitales
Grupo CGI - Consultoría. Estudios de potencial y necesidades urbanísticas, y ...
Conferencia n°7
Ejercicios propuestos de grafos y digrafos
Procesamiento de Resultados en AWK
Estructuras discretas
Grafos y digrafos
Estructuras discretas ii trabajo grafos_ maribel_hernandez
Puebe de programacion
Correcion de mfsi
Publicidad

Último (20)

PPTX
código mater y equipo de respuesta inmediata.pptx
PDF
QUIRÓFANO.pdf-diapositivas-universidade
PDF
ANESTESIOLOGÍA, ANESTESIO, BASES DE LA ANESTESIOLOGÍA
PPTX
analisis de la situación de salud en salud publica
PPTX
Puerperio fisiológico y PATOLÓGICO GYO PPT
PPTX
Introducción a la Prótesis Parcial Removible
PDF
Anatomía del Sistema Nervioso Clase 6.pdf
PPTX
SHOCK EN LA EMERGENCIA PEDIATRICA 2025.pptx
PDF
ANATOMÍA DEL EJERCICIO Y DEL MOVIMIENTO.pdf
PPTX
SEMIOLOGIA SISTEMA GASTROINTESTINAL.pptx
PDF
DIAPOS NEUROpara estudiantes de neuro.pdf
PDF
PRESENTACION DE ENF. GINECO OBSTETRICAS MAS COMUNES
PDF
Nuevas aportaciones al psicodiagnóstico clínico - García Arzeno (1993).pdf
PPTX
Anatomia y Fisiología Instituto San Pablo
PPT
DOC-20250814-WA0014.ppt caso clinico mastectomia
PPTX
semiologia abdominajjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
PDF
Patologias en cada etapa de la adultez.pdf
PDF
Clase 3 cabeza torax miembro superior resumida.pdf
PPTX
HIPERTENSIÓN ARTERIAL Y TERAPEUTICA.pptx
PDF
HidradenitisSupurativa(2025-08-01).HIDROSADENITIS.doc.pdf
código mater y equipo de respuesta inmediata.pptx
QUIRÓFANO.pdf-diapositivas-universidade
ANESTESIOLOGÍA, ANESTESIO, BASES DE LA ANESTESIOLOGÍA
analisis de la situación de salud en salud publica
Puerperio fisiológico y PATOLÓGICO GYO PPT
Introducción a la Prótesis Parcial Removible
Anatomía del Sistema Nervioso Clase 6.pdf
SHOCK EN LA EMERGENCIA PEDIATRICA 2025.pptx
ANATOMÍA DEL EJERCICIO Y DEL MOVIMIENTO.pdf
SEMIOLOGIA SISTEMA GASTROINTESTINAL.pptx
DIAPOS NEUROpara estudiantes de neuro.pdf
PRESENTACION DE ENF. GINECO OBSTETRICAS MAS COMUNES
Nuevas aportaciones al psicodiagnóstico clínico - García Arzeno (1993).pdf
Anatomia y Fisiología Instituto San Pablo
DOC-20250814-WA0014.ppt caso clinico mastectomia
semiologia abdominajjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
Patologias en cada etapa de la adultez.pdf
Clase 3 cabeza torax miembro superior resumida.pdf
HIPERTENSIÓN ARTERIAL Y TERAPEUTICA.pptx
HidradenitisSupurativa(2025-08-01).HIDROSADENITIS.doc.pdf

Paralelización del algoritmo de Smith-Waterman

  • 1. Paralelización del algoritmo de Smith-Waterman Luis Belloch Gómez Bioinformática, Mayo 2010 Master Computación Paralela y Distribuida
  • 2. BLAST y similares son más rápidos, pero pueden no detectar algunas alineaciones. Smith-Waterman es más preciso, pero su ejecución es mucho más lenta.
  • 3. - H E A G A W G H E E - 0 0 0 0 0 0 0 0 0 0 0 ) P 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 5 0 5 0 0 0 0 0 W 0 0 0 0 2 0 20 12 4 0 0 H 0 10 2 0 0 0 12 18 22 14 6 E 0 2 16 8 0 0 4 10 18 21 20 A 0 0 8 21 13 5 0 4 10 20 27 E 0 0 6 13 18 12 4 0 4 16 26 1. Construcción de la matriz de puntuación. 2. Recorrido inverso a partir del máximo. E F
  • 4. Para poder ejecutar en paralelo es necesario saber qué dependencias de datos existen
  • 5. E 0 0 6 13 18 12 4 0 4 Análisis de dependencias - H - 0 0 A(i-1,j-1) A(i-1,j) P 0 0 A 0 0 A(i,j-1) A(i,j) W 0 0 H 0 10 E 0 2 Cada elemento depende de su fila superior A 0 0 y su columna izquierda. E 0 0
  • 6. Análisis de dependencias P1 P2 A B B C Si ordenáramos la ejecución, los elemento B pueden ejecutarse en paralelo
  • 7. F G H I J K Ejecución por bloques - H E A G A W G H E E - 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 0 0 0 0 0 0 0 P1 A 0 0 0 5 0 5 0 0 0 0 0 W 0 0 0 0 2 0 20 12 4 0 0 H 0 10 2 0 0 0 12 18 22 14 6 P2 E 0 2 16 8 0 0 4 10 18 21 20 A 0 0 8 21 13 5 0 4 10 20 27 P3 E 0 0 6 13 4 10 4 0 4 16 26 Para evitar un envío excesivo de datos, se divide la matriz en bloques - H E A G A W G H E E - 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 0 0 0 0 0 0 0
  • 8. P2 E 0 2 16 8 0 0 4 10 18 21 20 A 0 0 8 21 13 5 0 4 10 20 27 P3 Ejecución por bloques E 0 0 6 13 4 10 4 0 4 16 26 - H E A G A W G H E E - 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 0 0 0 0 0 0 0 P1 A 0 0 0 5 0 5 0 0 0 0 0 envío de datos W 0 0 0 0 2 0 20 12 4 0 0 de P1 a P2 H 0 10 2 0 0 0 12 18 22 14 6 P2 E 0 2 16 8 0 0 4 10 18 21 20 envío de datos A 0 0 8 21 13 5 0 4 10 20 27 de P3 a P4 P3 E 0 0 6 13 4 10 4 0 4 16 26 Cada proceso comparte su última fila con el resto
  • 9. A 0 0 8 21 13 5 0 4 10 20 27 E 0 0 6 13 18 12 4 0 4 16 26 E 0 0 6 13 18 12 4 0 4 16 26 Ejecución por bloques B C A D B E C F D E F P1 P1 C D B E C F D G E F G C F D P2 P2 D E G E H F G H E F D G E H F I G H I P3 P3 F G E H F I G J H I J F I G P4 P4 G H J H K I J K La ejecución se realiza en cascada, como máximo existirán max(c,f) procesos en paralelo - H E A G A W G H E E - H E A G A W G H E E - 0 0 0 0 0 0 0 0 0 0 0
  • 10. Detalles Implementación Paradigma: Memoria Distribuida. Desarrollado en C & MPI. La matriz de puntuación es un vector de c x f enteros, contiguos en memoria. En lugar de almacenar la matriz de dirección por separado, se empaqueta en los dos bits superiores. 00 bits 29 a 0
  • 11. Entorno de pruebas Quadcluster del DSIC SGI Altix XE, 4 nodos Cada nodo 2 Intel Xeon Quadcore 5365 (64 bits) 8 cores por nodo 16 GB RAM Total 32 procesadores (nucleos)
  • 12. Estructura de pruebas El coste del algoritmo está en la construcción de la matriz de puntuación. Secuencias de 100, 3K y 30K elementos, sacadas de Uniprot. HBA_HUMAN.fasta 142 x 147 HBB_HUMAN.fasta FBN2_HUMAN.fasta 2.912 x 2.907 FBN2_MOUSE.fasta TITIN_HUMAN.fasta 34.350 x 35.213 TITIN_MOUSE.fasta
  • 13. Coste Espacial Una secuencia de 30K elementos produce una matriz de 30K x 30K = 900 millones de elementos. 900 x 4bytes ≅ 3.35GB Repartidos entre 32 procesadores, cada uno construye una matriz de 30K x (30K/32) ≅ 100MB
  • 14. Resultados secuencial icc test2.c util.c sw.c -o test2 -std=c99 -O3 ./test2 Prueba de rendimiento secuencial (matriz puntuación solo). t25a.s t25b.s la: 25 lb: 25 it:1000 tst: 1 T: 0.01 ms t100a.s t100b.s la: 140 lb: 140 it:1000 tst: 1 T: 0.16 ms t3Ka.s t3Kb.s la: 2912 lb: 2907 it:1 tst: 1 T: 75.00 ms t30Ka.s t30Kb.s la: 34350 lb: 35213 it:1 tst: 1 T: 11000.00 ms
  • 15. Resultados paralelo TITIN HumanMouse, 34Kx35K elementos 4.5GB total, 140MB por proceso np ts tp Sp Ep 4 11 2,641 4,165 1,041 8 11 1,365 8,059 1,007 16 11 0,709 15,507 0,969 24 11 0,493 22,324 0,930 32 11 0,389 28,292 0,884 * tiempos en seg.
  • 16. 4 11 2,64114 4,16 4,00 1,04 1,00 8 11 1,36494 8,06 8,00 1,01 1,00 16 24 32 11 11 11 Speed Up 0,70934 0,49275 0,38880 15,51 22,32 28,29 16,00 24,00 32,00 0,97 0,93 0,88 1,00 1,00 1,00 Tiempo del mejor algoritmo secuencial frente al tiempo del paralelo (sp = t1 / tp) 40,00 35,00 30,00 25,00 28,29 20,00 22,32 15,00 15,51 10,00 5,00 8,06 0 4,16 4 8 16 24 32 Speed Up Sp ref.
  • 17. 0 4 11 2,641 4,165 1,041 0 8 11 1,365 8,059 1,007 0 16 11 0,709 15,507 0,969 0 0 24 32 Eficiencia 11 11 0,493 0,389 22,324 28,292 0,930 0,884 Grado de utilización del sistema (ep = sp/p) 1,10 1,00 1,04 1,01 0,97 0,90 0,93 0,88 0,80 0,70 4 8 16 24 32 Eficiencia Ep ref.
  • 18. Conclusiones La paralelización funciona mejor con tamaños de problema grandes, el algoritmo secuencial se las arregla para secuencias cortas. Posibles trabajos futuros: Memoria compartida o sistemas híbridos.