68
Claves para el desarrollo de Proyectos Big Data Victoria López @victoriademates www.tecnologiaUCM.es Universidad Complutense de Madrid 4 b 1

Big Data. Complejidad,algoritmos y su procesamiento

Embed Size (px)

Citation preview

Page 1: Big Data. Complejidad,algoritmos y su procesamiento

1

Claves para el desarrollo de Proyectos Big Data

Victoria Ló[email protected] Complutense de Madrid

4b

Page 2: Big Data. Complejidad,algoritmos y su procesamiento

2

Introducción. Casos de Uso Big Data Collection Proyectos Big Data Almacenamiento y Procesamiento de Datos Sistemas Big Data y Data Analytics Complejidad y TPA

Claves para el desarrollo de Proyectos Big Data

4b

Page 3: Big Data. Complejidad,algoritmos y su procesamiento

3

Complejidad Computacional Rendimiento en computación Paralela Sistema de distribución RAID Técnicas de Programación Avanzada

Divide y Vencerás Voraz Programación Dinámica Backtracking / Branch & Bound

Complejidad Computacional y TPAs

4b

Page 4: Big Data. Complejidad,algoritmos y su procesamiento

4

Complejidad Computacional

Problemas P Problemas NP Problemas NP-Completos

Page 5: Big Data. Complejidad,algoritmos y su procesamiento

5

Complejidad Computacional

Problemas P

Problemas de decisión que pueden ser resueltos en una máquina determinista secuencial en un período de tiempo polinómico en proporción a los datos de entrada (tamaño del problema).

Ejemplos:

Ordenación – Mergsort, quicksort,…

Caminos mínimos – Dijkstra

Multiplicación de matrices, etc.

Page 6: Big Data. Complejidad,algoritmos y su procesamiento

6

Complejidad Computacional

Problemas NP

Una generalización de P es NP, que es la clase de problemas decidibles en tiempo polinómico sobre una máquina de Turing no determinista.

P es un subconjunto de NP.

Ejempos:

- Ciclos hamiltonianos (Problema del viajante)

Alan Turing, en su famoso artículo "On computable numbers, with an application to the entscheidungs problem" (1936), demostró que el problema de la parada (halting problem) de la máquina de Turing es indecidible, en el sentido de que ninguna máquina de Turing lo puede resolver.

Page 7: Big Data. Complejidad,algoritmos y su procesamiento

7

Complejidad Computacional

Problema de Parada (Halting problema): encontrar un algoritmo general que decida si una fórmula escrita en cálculo de primer orden es un teorema. En 1936 (de manera independiente) Alonzo Church y Alan Turing demostraron que es imposible escribir tal algoritmo. Como consecuencia, es también imposible decidir con un algoritmo si ciertas frases concretas de la aritmética son ciertas o falsas.

https://www.youtube.com/watch?v=M42sJinf3X8

MIT Lecture: https://www.youtube.com/watch?v=msp2y_Y5MLE

https://www.youtube.com/watch?v=9USdYUgwRpU

Page 8: Big Data. Complejidad,algoritmos y su procesamiento

8

Complejidad Computacional

Dado un conjunto X y un elemento a, decidir si a pertenece a X es un problema que puede no tener solución en tiempo finito.--Conjuntos decidibles: se sabe siempre la respuesta en tiempo finitoEjemplo: El conjunto A de personas diestras es decidible. Escogida una persona cualquiera, con un simple test podemos saber si es o no diestra en tiempo finito (si pertenece o no al conjnto A)--Conjuntos indecidibles: no se sabe si puede conocerse la respuesta en tiempo finito Ejemplo: El conjunto B de bebés prematuros que desarrollarán la DBP (displesia broncopulmonar)Escogido un bebé prematuro, se le hacen las pruebas y se presentan dos situaciones:1. Da positivo: El bebé pertenece al conjunto B2. Da negativo: No se sabe si el bebé pertenece al conjunto B (y no depende

de la prueba que se realice!!)

Page 9: Big Data. Complejidad,algoritmos y su procesamiento

9

Rendimiento en ProgramaciónParalela

La ley de AmdahlLa ley de GustafsonEjemplos de aplicación

Page 10: Big Data. Complejidad,algoritmos y su procesamiento

10

Mejora de un sistema

• La mejora de un sistema no es ilimitada. • Las tecnologías Big Data no son óptimas si no se utilizan

adecuadamente– Hay que saber hacia dónde dirigir los esfuerzos de optimización

• La mejora de cualquier sistema debido a un componente más rápido depende del tiempo que éste se utilice

• Discusión preliminar– Un sistema tarda un tiempo T en ejecutar un programa– Mejoramos el sistema acelerando k veces uno de sus componentes– Este componente se utiliza durante una fracción f del tiempo T ¿Cuál es la

aceleración A del sistema global?

Page 11: Big Data. Complejidad,algoritmos y su procesamiento

11

Tiempo original vs. tiempo mejorado

Recurso no utilizado Recurso utilizado

Fracción 1 f Fracción f

Recurso no utilizado Recurso utilizado

Toriginal

Tmejorado

Recurso mejorado k veces

Page 12: Big Data. Complejidad,algoritmos y su procesamiento

12

Ley de Amdahl (1967)

• ¿Cuál es la aceleración A (speedup) del sistema completo después de acelerar k veces un componente?

• Casos particulares de la ley– Si f = 0 A = 1: no hay ninguna mejora en el sistema– Si f = 1 A = k : el sistema mejora igual que el componente

mejorado

original

T

T A

k

ff1TT originalmejorado

kf

fA

1

1

Page 13: Big Data. Complejidad,algoritmos y su procesamiento

13

Ejemplo de cálculo

• La utilización de un procesador es del 60%• ¿En cuánto aumentará el rendimiento del sistema si se duplica

la velocidad del procesador (k=2)?

• Aceleración máxima que se puede conseguir

43.1

26.0

)6.01(

1

ALa aceleración es 1.43 El rendimiento aumenta un 43%

5.2.60-1

1

-1

1lím

fA

k

Page 14: Big Data. Complejidad,algoritmos y su procesamiento

14

Contexto de la ley de Amdahl

• Artículo firmado por Gene Amdahl– “Validity of the Single Processor Approach to Achieving Large-Scale Computing

Capabilities”, AFIPS Conference Proceedings, (30), pp. 483-485, 1967. – Se utiliza para poner de manifiesto las limitaciones de los multiprocesadores en el

cómputo paralelo

f = 0.5

f = 0.95

Page 15: Big Data. Complejidad,algoritmos y su procesamiento

15

Análisis: relación entre A, f y k

1

2

3

4

5

6

7

8

9

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Acc

eler

ació

glo

bal (

A)

Utilització millorada (f)

Relació entre A i f,a

k = Infinitok = 50k = 10k = 5k = 4k = 3k = 2k = 1.5

k =infinito A=2

k=infinito A=5

Utilización mejorada (f)

Ace

lera

ción

glo

bal (

A)

Relación entre A, f y k

Page 16: Big Data. Complejidad,algoritmos y su procesamiento

16

Generalización de la ley de Amdahl

• Caso con una mejora solamente

• Caso general con n mejoras

kf

fA

1

1

n

i i

in

ii k

ff

A

11

1

1

Page 17: Big Data. Complejidad,algoritmos y su procesamiento

17

Rendimiento de multiprocesadores

• Sistema con p procesadores• Aplicación a paralelizar

– Fracción secuencial = 0.10– Fracción paralelizable = 0.90

• ¿Cuál es la aceleración obtenida con 15 procesadores?

• ¿Cuál es la aceleración máxima obtenible?

25.6

1590.0

10.0

11

paralelasecuencial

p

ff

A 1010.0

11lím

secuencial

f

Ap

Page 18: Big Data. Complejidad,algoritmos y su procesamiento

18

0,00

2,00

4,00

6,00

8,00

10,00

12,00

14,00

16,00

0 10 20 30 40 50

Procesadores

Acele

ració

n

Evolución de la aceleración

5% secuencial8.82

6.25

10% secuencial

Page 19: Big Data. Complejidad,algoritmos y su procesamiento

19

Planteamiento de Gustafson

• Amdahl enfatiza el aspecto más negativo del procesamiento paralelo

• Las máquinas paralelas se usan para resolver grandes problemas (meteorología, biología molecular, big data)

• Un computador secuencial nunca podría ejecutar un gran programa paralelo

pT

TA 1

paralela Parte1

secuencial Parte

Page 20: Big Data. Complejidad,algoritmos y su procesamiento

20

La aceleración proporcional

• La cantidad de trabajo que se puede hacer en paralelo varía linealmente con el número de procesadores– Con más procesadores se pueden acometer problemas de mayor

coste computacional

)1()1(

1

111 ppT

pTT

T

TA

pp

T1 = Tp

T’1

T1 (1−) T1

T1 (1−) p T1

Máquina paralela

Máquina secuencial

Page 21: Big Data. Complejidad,algoritmos y su procesamiento

21

Algunas reflexiones finales

• Una mejora es más efectiva cuanto más grande es la fracción de tiempo en que ésta se aplica

• Para mejorar un sistema complejo hay que optimizar los elementos que se utilicen durante la mayor parte del tiempo (caso más común)

• Campos de aplicación de las optimizaciones– Dentro del procesador: la ruta de datos (data path)– En el juego de instrucciones: la ejecución de las instrucciones más frecuentes– En el diseño de la jerarquía de memoria, la programación y la compilación:

hay que explotar la localidad de las referencias• El 90% del tiempo se está ejecutando el 10% del código

Page 22: Big Data. Complejidad,algoritmos y su procesamiento

Sistemas de Distribución: RAID

Page 23: Big Data. Complejidad,algoritmos y su procesamiento

¿Qué es RAID?

Conjunto Redundante de Discos Independientes (Redundant Array of Independent Disks)

Sistema de almacenamiento de datos que combina múltiples unidades de almacenamiento (HDD o SSD) para formar una única unidad lógica.

Proporciona: Mayor integridad, tolerancia a fallos, rendimiento y capacidad.

2

Page 24: Big Data. Complejidad,algoritmos y su procesamiento

Niveles de RAID

3

Niveles de RAID estándar

Niveles de RAID anidados

Niveles de RAID propietarios

Page 25: Big Data. Complejidad,algoritmos y su procesamiento

Niveles de RAID estándar

4

Conjunto dividido: Distribuye la información equitativamente en todos los

discos. Ejemplo: RAID 0

Conjunto en espejo: Crea una copia exacta de un conjunto de datos en uno

o más discos Ejemplo: RAID 1

Conjunto dividido con paridad distribuida: Crea una división de datos a nivel de bloques que

distribuye la información de paridad entre los discos Ejemplo: RAID 5

Page 26: Big Data. Complejidad,algoritmos y su procesamiento

RAID 0 – Ofrece mayor rendimiento pero no tolerancia a los fallos –Sistema en Serie

RAID 1 – Mejora el rendimiento y tiene tolerancia a los fallos – Sistema en paralelo

RAID 5 – Mejora los sistemas multiusuario

,

Ejemplos

Page 27: Big Data. Complejidad,algoritmos y su procesamiento

Niveles de RAID anidados

5

Los RAID anidados se indican normalmente uniendo en un solo número los correspondientes números de los niveles RAID usados, añadiendo a veces un «+» entre ellos.

Por ejemplo, el RAID 01 (o RAID 0+1)

Page 28: Big Data. Complejidad,algoritmos y su procesamiento

Niveles de RAID propietarios Son desarrolladas por compañías privadas.

Suelen implementarse como una combinación o evolución de RAID existentes añadiendo algunas mejoras.

Estos mejoras puede ser: Tolerancia a fallos simultánea en múltiples discos. Añadir componentes hardware. Añadir cachés para mejorar el rendimiento

Ejemplo de RAID propietario: RAID 1.5

6

Page 29: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad

7

La paridad es un mecanismo utilizado para detectar errores.

Se utiliza para la protección de datos y para la recuperación de datos perdidos.

Se basa en la propiedad algebraica de la conmutatividad de la suma: si tenemos el rango 0-100 pero detectamos que falta un número, podemos saber cuál es de forma sencilla usando la suma y la conmutatividad.

El operador más común en RAID es la XOR.

Page 30: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

8

Supongamos un sistema RAID de 6 discos donde la información se codifica en binario:

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

Page 31: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

9

Escribimos 00101010 en el disco 1

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010

Page 32: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

10

Escribimos 10001110 en el disco 2

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110

Page 33: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

11

Escribimos 11110111 en el disco 3

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111

Page 34: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

12

Escribimos 10110101 en el disco 4

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101

Page 35: Big Data. Complejidad,algoritmos y su procesamiento

Cálculo de paridad: ejemplo

13

Calculamos la paridad bit a bit con la XOR: 00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101

Page 36: Big Data. Complejidad,algoritmos y su procesamiento

36

Cálculo de paridad: ejemplo

Escribimos el resultado en el disco de paridad

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101 11100110

Page 37: Big Data. Complejidad,algoritmos y su procesamiento

37

Cálculo de paridad: ejemplo

El disco 2 se rompe

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101 11100110

Page 38: Big Data. Complejidad,algoritmos y su procesamiento

38

Cálculo de paridad: ejemplo

Calculamos la XOR bit a bit con los discos restantes y el de paridad:

00101010 XOR 11110111 XOR 10110101 XOR 11100110 = 10001110

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101 11100110

Page 39: Big Data. Complejidad,algoritmos y su procesamiento

39

Cálculo de paridad: ejemplo

Escribimos el resultado en el disco de repuesto:

Disco 1(datos)

Disco 2(datos)

Disco 3(datos)

Disco 4 (datos)

Disco 5(Repuesto)

Disco 6(paridad)

00101010 10001110 11110111 10110101 1110011010001110

Page 40: Big Data. Complejidad,algoritmos y su procesamiento

Ventajas

20

Mayor fiabilidad que los discos individuales por ser una arquitectura tolerante a fallos con elementos redundantes.

Mayor rendimiento y tasa de transferencia de datos al realizar lecturas y escrituras simultáneas sobre diferentes discos.

Mayor capacidad de almacenamiento en RAID 0.

Mayor integridad de los datos gracias al mecanismo de paridad.

Page 41: Big Data. Complejidad,algoritmos y su procesamiento

Desventajas:

21

La migración de un sistema RAID a otra máquina o controladora resulta complejo o incluso imposible.

En sistemas RAID de espejo (RAID 1), la capacidad total se reduce a la mitad.

Elevado coste en algunas configuraciones.

El disco de paridad puede actuar de cuello de botella porque cada cambio en el grupo RAID requiere un cambio en este disco.

Page 42: Big Data. Complejidad,algoritmos y su procesamiento

42

Técnicas de Programación Avanzada

-Divide y Vencerás-Voraz-Programación Dinámica-Backtracking

Page 43: Big Data. Complejidad,algoritmos y su procesamiento

43

1. Divide y Vence

Page 44: Big Data. Complejidad,algoritmos y su procesamiento

44

Aplicaciones

Búsqueda de un elemento en un a base de datos

Ordenación de vectores/matrices Cálculo de la Moda Multiplicación de enteros grandes Multiplicación de matrices grandes Subvectores de suma máxima

Page 45: Big Data. Complejidad,algoritmos y su procesamiento

45

Complejidad Divide y Vence

Page 46: Big Data. Complejidad,algoritmos y su procesamiento

46

Búsqueda Binaria en un vector ordenado

Page 47: Big Data. Complejidad,algoritmos y su procesamiento

47

Merge Sort-Ordenación por Mezclas

Desarrollado en 1945 por John von Neumann

Pasos:

Caso Base: Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. Caso General:

1. Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del tamaño.2. Llamar recursivamente con cada sublista aplicando el mismo procedimiento3. Mezclar las dos sublistas en una sola lista ordenada.

Page 48: Big Data. Complejidad,algoritmos y su procesamiento

48

Quick sort ---- Ordenación Rápida

Creado por Tony Hoare en 1961

Caso Base: Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. Caso General:

1. Seleccionar un pivote (el último elemento) y colocarlo en su sitio definitivo de forma que los menores queden antes y los mayores después aunque desordenados.2. Llamar recursivamente con input la sublista anterior y la posterior aplicando el mismo procedimiento3. No hace falta mezclar porque las dos sublistas ya estarán ordenadas y serán contiguas.

Page 49: Big Data. Complejidad,algoritmos y su procesamiento

49

Mersort vs. Quicksort

https://www.youtube.com/watch?v=FGgVgSitSF0

Mersort vs quicksort

https://www.youtube.com/watch?v=es2T6KY45cA

Page 50: Big Data. Complejidad,algoritmos y su procesamiento

50

Algoritmos VoracesGreedy

• Técnica para resolver algunos problemas de optimización. • Partes del problema:

– Conjunto de Candidatos– Etapas

• En cada etapa se escoge el candidato más adecuado. • El proceso debe conducir a la solución óptima. • Hay que buscar un criterio de selección de candidatos que

conduzca a la solución óptima. • Requiere una demostración matemática del paso anterior. • No siempre existe dicho criterio, en estos casos la

Programación Dinámica puede ser una buena alternativa.

Page 51: Big Data. Complejidad,algoritmos y su procesamiento

51

Esquema Voraz

Page 52: Big Data. Complejidad,algoritmos y su procesamiento

52

Aplicaciones de Voraz• Arboles recubridores mínimos ARM (minimum spanning tree) • Algoritmo de Kruskal: partiendo del grafo inconexo (sin

aristas) añadir la arista de menor peso que una dos componentes conexas diferentes hasta tener una única componente conexa. https://www.youtube.com/watch?v=SilS8f8icWY

• Algoritmo de Prim: Escoger la arista de menor peso que una un vértice ya en el árbol con otro aún fuera del árbol hasta tener todos los vértices del árbol. https://www.youtube.com/watch?v=-2NlTulDUq4

• Transmisión rápida de mensajes en la red.• Asegurar la cobertura de un servicio con

coste mínimo.• En la secuenciación del genoma se

utilizaron caminos hamiltonianos pero no exite un algoritmo voraz.

Page 53: Big Data. Complejidad,algoritmos y su procesamiento

53

Aplicaciones de Voraz

Árbol de caminos mínimos Algoritmo de Dijkstra: Criterio escoger el vértice más

cercano a alguno de todos los accesibles desde el último vértice accedido, pudiéndolo acceder mediante un acceso directo o indirecto según los vértices ya marcados.

- Produce el camino minimo desde un vértice s a todos los demás vértices del grafo, es decir, resuelve M(s, x) =camino más corto entre s y x. De forma que M(s,t) es la solución buscada.

Tiene muchísimas aplicaciones en la industria. Vuelos desde una base a varios destinos, por ejemplo.

Page 54: Big Data. Complejidad,algoritmos y su procesamiento

54

Programación Dinámca

Técnica que (sólo) resuelve problemas que cumplen el Principio de Optimalidad de Bellman

Hay que generalizar el problema para poder comprobar (demostrar) que se cumple el P.O.

Pasos de resolución:

Definir unas ecuaciones recursivas (simples o múltiples) que resuelvan el problema. Definir los casos límite y casos base primero.

Ejecutar la programación recursiva calculando los datos básicos primero y almacenándolos en tablas para

-Evitar cálculos repetidos

-Marcar un camino para después rastrear la solución que produce el valor óptimo.

Page 55: Big Data. Complejidad,algoritmos y su procesamiento

55

– Supongamos que un problema se resuelve tras tomar un secuencia d1, d2, …, dn de decisiones.

– Si hay d opciones posibles para cada una de las decisiones, una técnica de fuerza bruta exploraría un total de dn secuencias posibles de decisiones (explosión combinatoria).

– La técnica de programación dinámica evita explorar todas las secuencias posibles por medio de la resolución de subproblemas de tamaño creciente y almacenamiento en una tabla de las soluciones óptimas de esos subproblemas para facilitar la solución de los problemas más grandes.

Programación dinámica: Introducción

Page 56: Big Data. Complejidad,algoritmos y su procesamiento

56

• Aplicabilidad– Se emplea típicamente para resolver problemas de

optimización (maximizar, minimizar).– Permite resolver problemas mediante una

secuencia de decisiones (como el esquema voraz)

– A diferencia del esquema voraz, se producen varias secuencias de decisiones y solamente al final se sabe cuál

es la mejor de ellas.– Está basado en el principio de optimalidad de Bellman:

Programación dinámica:

R. Bellman: Dynamic Programming,Princeton University Press, 1957

“Cualquier subsecuencia de decisiones de una secuencia óptima de decisiones que resuelve un problema también debe ser óptima respecto al subproblema que resuelve.”

Page 57: Big Data. Complejidad,algoritmos y su procesamiento

57

Problema del Ascensor

Función objetivo 1: Maximizar el número de personas que transportará el ascensor

Función objetivo 2: Maximizar el peso que transportará el ascensor

Datos: Capacidad del ascensor C=300kg Pesos de las personas en espera: 30, 40, 50, 70, 90, 150

Criterio voraz 1: Escoger en cada etapa la persona de menor peso

Criterio voraz 2: Escoger en cada etapa la persona de mayor peso

Page 58: Big Data. Complejidad,algoritmos y su procesamiento

58

Algoritmos Voraces vs. P. Dinámica

Page 59: Big Data. Complejidad,algoritmos y su procesamiento

59

Algoritmos Voraces vs. P. Dinámica

Page 60: Big Data. Complejidad,algoritmos y su procesamiento

60

Problema de la Mochila

Se tienen n objetos fraccionables y una mochila.El objeto i tiene peso pi y una fracción xi (0≤xi≤1) del objeto i produce un beneficio bixi.El objetivo es llenar la mochila, de capacidad C, de manera que se maximice el beneficio.

Una variante: la “mochila 0-1”xi sólo toma valores 0 ó 1, indicando que el objeto se deja fuera o se mete en la mochila.Los pesos, pi, y la capacidad son números naturales. Los beneficios, bi, son reales no negativos.

maximizar bixi1i n

sujeto a pixi1i n C

con 0xi 1, bi 0, pi 0, 1i n

Page 61: Big Data. Complejidad,algoritmos y su procesamiento

61

El problema de la mochila 0-1

Page 62: Big Data. Complejidad,algoritmos y su procesamiento

62

El problema de la mochila 0-1

Page 63: Big Data. Complejidad,algoritmos y su procesamiento

63

Aplicaciones P. Dinámica en Big Data

En la secuenciación del genoma se utilizan varios algoritmos basados en la PD.

Cuando se rompe la molécula de ADN en 28 millones de trozos, se realizan alineamientos múltiples para encontrar la secuencia más probable. Estos alineamientos son los algoritmos de Needleman – Wunsh y de Smith - Waterman

Los laboratorios utilizan los algoritmos Fasta y Blast como heuristicas de los anteriores, en estos se asume la pérdida de datos a favor de la velocidad de procesamiento.

Page 64: Big Data. Complejidad,algoritmos y su procesamiento

64

-Backtracking (Búsqueda con Retroceso)-Branch & Bound (Ramificación y Poda)

Page 65: Big Data. Complejidad,algoritmos y su procesamiento

65

Backtraking

Page 66: Big Data. Complejidad,algoritmos y su procesamiento

66

Backtraking

Page 67: Big Data. Complejidad,algoritmos y su procesamiento

67

FUTURO

REDISEÑO DE ALGORITMOS. ALGORITMOS APROXIMADOS ORIENTADOS AL HARDWARE Y AL PROCESAMIENTO EN LA NUBE

RECONFIGURACIÓN DE SISTEMAS DE ALMACENAMIENTO A VECES CON PÉRDIDA DE DATOS CONTROLADA

TRABAJO ONLINE MAS HACIA STREAMING Y MENOS HACIA STANDALONE Y BATCH PROCESSING

Page 68: Big Data. Complejidad,algoritmos y su procesamiento

68

Claves para el desarrollo de Proyectos Big Data

Victoria Ló[email protected] Complutense de Madrid

Fin