UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS"

Transcripción

1 UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PARALELIZACIÓN DE UN ALGORITMO PARA LA DETECCIÓN DE CÚMULOS DE GALAXIAS MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN MARCEL ANDRE AUGSBURGER BECERRA PROFESOR GUIA: NANCY HITSCHFELD KAHLER MIEMBROS DE LA COMISION: LUIS CAMPUSANO BROWN JORGE PÉREZ ROJAS SANTIAGO DE CHILE ENERO 2012

2 Tabla de contenido Resumen Introducción La nueva astronomía La computación paralela Motivación Importancia del análisis de cúmulos de galaxias Importancia del análisis paralelo Otras aplicaciones del software Objetivos Contenido de la memoria Antecedentes Tipos de paralelismo Herramientas Algoritmo secuencial de detección de cúmulos de galaxias Análisis...17 Arquitectura de Hadoop Distribución de datos Procesamiento de datos Escalabilidad HDFS MapReduce Arquitectura de Vocludet Versión disponible de Vocludet Alternativas de implementación

3 MapReduce de Hadoop Pig Streaming Alternativa escogida Diseño e Implementación Diseño de la solución División de los datos Procesamiento de los datos Re ensamblaje de los resultados Diseño final Código Implementado Evaluación Datos de prueba Pruebas Particiones Ensamblaje Verificación de datos y procedimientos Desempeño Uso de recursos Desempeño comparativo Conclusiones Anexos...66 Tabla 3: Distribución de cúmulos por tamaño...66 Mapper Function 2 celdas 10% de overlap...67 Re Assembly Function Bibliografía

4 Resumen Dados los avances en la tecnología, la astronomía es capaz de recolectar del orden de terabytes de datos por noche. El análisis manual de ésta es prácticamente imposible, por lo que es constante la necesidad de nuevos y mejores algoritmos para realizar análisis automático. Por otro lado, la computación paralela provee herramientas para realizar análisis de datos masivos, las que incrementan la capacidad total de procesamiento y disminuyen el tiempo requerido. Existe un software para la búsqueda de cúmulos de galaxias, el cual funciona de forma secuencial. Hacer que este software funcione en forma paralela sería de gran utilidad, dada la cantidad de datos que existen y existirán para analizar. El objetivo de esta memoria es diseñar e implementar una solución computacional que permita efectuar la detección de cúmulos de galaxias en forma paralela. La paralelización del algoritmo se hizo sobre el framework Hadoop, utilizando la herramienta Streaming con el lenguaje Python para el desarrollo del software. Se construyó una aplicación que divide los datos de entrada de forma inteligente, ejecuta el algoritmo de detección de cúmulos de galaxias en varias máquinas de forma paralela, y re ensambla los resultados parciales obtenidos. Se estudiaron estrategias para el particionamiento de los datos, utilizando celdas con distintas geometrías. También se estudiaron e implementaron estrategias para el re ensamblado de los resultados. En base a conocimientos astronómicos y experimentación se determinó la utilidad, dado el contexto, de cada estrategia, y los valores límites para sus parámetros. Los resultados son los siguientes: (1) un software paralelo para la detección de cúmulos de galaxias; (2) al correr el programa paralelo con dos particiones, el tiempo de ejecución se reduce a la mitad; (3) el software secuencial de detección de cúmulos se observa altamente dependiente de las particiones utilizadas, encontrándose para una partición de 2 celdas sólo un 11% de los cúmulos que se detectaban en la versión secuencial. Como trabajo futuro se propone: (1) modificar el software secuencial de búsqueda de cúmulos de galaxias para que detecte cúmulos sin miembros repetidos; (2) ejecutar este software en un clúster de computadores o con cloud computing, para medir las mejoras en tiempo; (3) la ejecución de este software con sets de datos más grandes, para medir la escalabilidad de éste; (4) crear una partición adhoc al set de datos. 4

5 1. Introducción Desde la antigüedad, diferentes culturas y personas han creado catálogos de estrellas. Al principio se hacían observaciones a ojo desnudo, hasta que en 1610 Galileo Galilei apuntó su telescopio al cielo. Al irse mejorando las capacidades de los telescopios, la cantidad de información astronómica y por ende los catálogos estelares fueron creciendo en gran escala. Hoy en día las herramientas de observación permiten escanear el cielo y guardar los datos de manera automática, generando terabytes de información sólo de pequeñas áreas del cielo. Al haber tanta información, el análisis manual de ésta es prácticamente imposible, por lo que es constante la necesidad de nuevos y mejores algoritmos computacionales para realizar análisis automático. A pesar de ser mucho más eficiente, la gran cantidad de datos hace que el análisis computacional requiera de mucho tiempo de procesamiento. La computación paralela puede disminuir los costos en tiempo, ya que permite aumentar los recursos asignados a cada tarea. La computación paralela divide un problema en varios sub problemas, los que son resueltos de manera concurrente. De tal manera se puede resolver cada sub problema con distintos recursos, pudiendo distribuir la carga en equipos que pueden estar separados físicamente. Sin embargo, los programas paralelos agregan dificultad en los procesos de división del problema, en la concurrencia, y en el re ensamblado de la solución completa a partir de las soluciones parciales. Existe un software desarrollado por Daniel Pizarro et al, el cual aplica un algoritmo basado en el Voronoi Tessellation Technique (1) para la detección de cúmulos de galaxias. Este software lleva por nombre Vocludet. Uno de los componentes del Vocludet es el Voronoi Tessellation Maximum Likelihood Estimator, en adelante VTMLE, el cual lleva a cabo el proceso de búsqueda de cúmulos (2). Este software funciona de manera secuencial La nueva astronomía Gracias a los avances en la tecnología de los telescopios, algoritmos de detección, y hardware computacional, la recolección de datos astronómicos es actualmente del orden de terabytes por noche (4). Este incremento en la obtención de datos ha ocurrido en muchas áreas de la ciencia, cambiando la forma en que se hace la investigación y transformándola en análisis de datos sobre bases de datos con mucha información. En el área de la astronomía se habla del Observatorio Virtual, donde se puede acceder a la información de distintos centros de datos de manera relativamente fácil y transparente. Se 5

6 están aportando datos y relacionándolos entre sí a tasas cada vez mayores, lo cual ha tornado la obtención de datos por este medio en algo tan importante como la obtención de datos a través de telescopios. En los últimos años se han puesto a disposición resultados de numerosos estudios con distintos tipos de información astronómica. En particular existen datos e interés en la estructura a gran escala del universo, donde han jugado un rol importante las observaciones de cúmulos de galaxias, al servir para contrastarlas con las predicciones de diferentes modelos teóricos. Los cúmulos de galaxias, mencionados previamente, son sistemas que contienen desde 50 a 1000 galaxias unidas por atracción gravitacional mutua; las galaxias son sistemas de estrellas, las cuales poseen típicamente cientos de miles de millones de estrellas. Estos cúmulos han sido detectados históricamente en forma visual, y recientemente se han aplicado algoritmos para la detección automática de éstos. El sondeo 2dF Galaxy Redshift Survey (2dFGRS), llevado a cabo por el Observatorio Anglo-Australiano entre 1997 y 2002, generó variados tipos de información respecto a galaxias, incluyendo su distribución al determinar su posición en tres dimensiones (5). La estimación de distancias es posible gracias a la información del corrimiento al rojo, que es el aumento de la longitud de onda equivalente al Efecto Doppler en las ondas físicas La computación paralela La computación paralela es la utilización simultánea de múltiples recursos de computación para resolver problemas computacionales. Tradicionalmente, el software ha sido escrito para ser ejecutado en forma secuencial. Esto significa que para resolver un problema, el algoritmo que se implementa debe ser escrito como una secuencia de instrucciones. Como restricción se tiene que estas instrucciones deben ser ejecutadas una a la vez, y solamente en el orden especificado por el algoritmo. Cada una de estas instrucciones es ejecutada por una CPU (Central Processing Unit). El tiempo que demora la resolución del problema depende de la eficiencia del algoritmo y de la rapidez con la que la CPU realiza los cálculos, haciendo que este último factor haya sido y siga siendo sujeto de estudio. 6

7 Por décadas, la velocidad de procesamiento de los computadores ha ido incrementando según la Ley de Moore, esto es, duplicándose cada aproximadamente dos años (6). Este incremento se ha debido en gran medida al aumento de la frecuencia de reloj de los procesadores, sin embargo se está llegando a un límite conocido como power wall, debido al consumo exponencial de energía con el aumento en la frecuencia de operaciones, y el consiguiente aumento de temperatura. Existen también cuellos de botella como la rapidez de acceso a la memoria, por lo que el desarrollo de procesadores más rápidos no necesariamente va a significar un incremento en la eficiencia final de los computadores. En la búsqueda de cómo continuar incrementando la capacidad de procesamiento, y tomando en cuenta otros factores limitantes, se ha considerado el paralelismo como buena solución. La computación paralela se ha usado históricamente, mostrando buenos resultados en distintas áreas, como en computación de alto rendimiento, servidores, aceleración gráfica, y muchos sistemas embebidos (7). Así podemos encontrar actualmente diseños de procesadores con múltiples núcleos, los cuales permiten realizar varios cálculos por ciclo, para computadores multipropósito Motivación Existe un software para la búsqueda de cúmulos de galaxias, el cual funciona de forma secuencial. Hacer que este software funcione en forma paralela es de gran utilidad, dada la cantidad de datos que existen y existirán a futuro para analizar Importancia del análisis de cúmulos de galaxias Los cúmulos de galaxias son de gran interés para la astronomía. En las últimas décadas han tenido un importante rol en el estudio cosmológico: sirven para reconocer las estructuras en gran escala del universo, su densidad numérica se puede contrastar con predicciones de distintos modelos, y además sirven para monitorear la formación y evolución de las galaxias (9) Importancia del análisis paralelo Como se mencionó, hoy se cuenta con un observatorio virtual con grandes cantidades de datos. Futuros sondeos prometen aumentar el volumen de datos en órdenes de magnitud, produciendo una llamada avalancha de datos astronómicos. 7

8 La ciencia en general ha logrado producir más datos de los que se pueden analizar, y dada esta problemática, es de gran importancia primero lograr el análisis automático de los datos, e inmediatamente lograr paralelizarlo para aminorar los tiempos de procesamiento. Lo relevante de esta tarea para la astronomía, la aplicabilidad en otras ramas de la ciencia, y la conocida dificultad de paralelizar procesos, hacen de éste un tema interesante como memoria Otras aplicaciones del software El análisis de cúmulos es un problema recurrente en varias áreas, entre éstas el aprendizaje automático, reconocimiento de patrones, análisis de imágenes, recuperación de la información y bioinformática. Dado que el software desarrollado se creó de manera flexible, éste puede ser usado no sólo en el análisis de datos astronómicos, sino que también en cualquiera de las áreas recién mencionadas. Si bien la aplicación secuencial ya lo permitía, el desarrollo de este análisis en paralelo abre las puertas al procesamiento de órdenes de magnitud mayor de datos, pudiéndose atacar problemas que de otra manera hubiese sido imposible Objetivos El objetivo general es diseñar e implementar una solución computacional que permita detectar cúmulos de galaxias en forma paralela, utilizando un framework que permita distribuir la carga de procesamiento. Los objetivos específicos son: Construir una aplicación utilizando el framework Hadoop para llevar a cabo el análisis de datos en forma paralela. Lo anterior considera el diseño e implementación de un programa que realice una buena partición de los datos, resuelva el problema sobre cada partición, y calcule la solución completa re ensamblando los resultados parciales. Evaluar si se efectúa una mejora a la solución existente, lo que implica comparar la aplicación secuencial y la aplicación paralela en término de tiempos y consumo de recursos. Determinar las diferencias y similitudes entre los resultados obtenidos por el programa secuencial y el paralelo. 8

9 1.5. Contenido de la memoria En la sección 2 se presentan las tecnologías disponibles y el algoritmo que se quiere paralelizar. En la sección 3 se analizan las herramientas con las que se cuenta para el desarrollo del software, se comparan las diferentes alternativas y su estado, y se decide cuáles se van a utilizar y de qué forma. En la sección 4 se presentan las decisiones que se consideraron para el diseño del software, se propone un diseño final, y se muestra y explica el código implementado. En la sección 5 se presentan los experimentos realizados para probar el software y determinar su eficacia y eficiencia. Se incluye una descripción de los datos de prueba, las pruebas mismas, y el desempeño del software. Finalmente, en la sección 6 se presentan las conclusiones a las que se llegó con este trabajo, según los objetivos que se habían planteado, y se proponen acciones para continuarlo a futuro. 9

10 2. Antecedentes En este capítulo se presentan los antecedentes del problema, tales como las tecnologías disponibles y el algoritmo que se quiere paralelizar Tipos de paralelismo La computación paralela se puede llevar a cabo en varios niveles, desde la cantidad de bits que se pueden procesar por ciclo, la cantidad de instrucciones que se pueden procesar en forma paralela, la paralelización en procesamiento de datos, hasta la paralelización de tareas. De todos modos, sólo se pueden realizar ciertos cálculos en paralelo: algunos deben ser secuenciales pues dependen de resultados obtenidos por cálculos previos. Se puede hacer una clasificación de los computadores que trabajan en forma paralela según el nivel al cual el hardware provee el paralelismo. Para el paralelismo a nivel de núcleos de procesamiento, esta clasificación es a grandes rasgos análoga a la distancia entre los nodos básicos de computación, y no son mutuamente excluyentes. Computación Multinúcleo: Un procesador multinúcleo es aquel que posee múltiples unidades de ejecución (núcleos) en el mismo chip. Estos procesadores tienen la capacidad de ejecutar múltiples instrucciones por ciclo, provenientes de múltiples flujos de instrucciones. Multiprocesamiento Simétrico: Un multiprocesador simétrico es un computador que posee múltiples procesadores idénticos, los cuales comparten el acceso a la memoria a través de un único bus de datos. Esto permite asignar más de un procesador a una o varias tareas. Dado el diseño del acceso a datos, los multiprocesadores simétricos suelen no tener más de 32 procesadores. Computación Distribuida: La computación distribuida es un modelo de computación donde se usan múltiples computadores para la resolución de un problema. Estos se coordinan entre sí a través de un sistema distribuido, definido como: una colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida, donde cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema. Se define como nodo a una unidad individual, típicamente una máquina, dentro de un sistema distribuido. El framework utilizado en el presente trabajo se construyó para que pudiese ser utilizado por cualquiera de las tres clases de computación paralela, abstrayéndose de este nivel y funcionando indiferente a la 10

11 clase de paralelismo y cantidad de núcleos utilizados. Sin embargo, presta su verdadera contribución al ser aplicada con computación distribuida, al crecer la capacidad de procesamiento de datos en paralelo en órdenes de magnitud. Para la cantidad de datos que genera la ciencia, y la astronomía en particular, se hace necesario que el procesamiento de información se haga con computación distribuida. La computación a gran escala presenta un gran número de dificultades. La mayoría de éstas derivan de la coordinación entre múltiples máquinas para la solución de un problema, y las consiguientes fallas que se pueden presentar, tanto de comunicación, como de los nodos en sí. En un ambiente distribuido, las fallas parciales son esperadas e incluso comunes: las redes pueden experimentar variados tipos de problemas derivados de fallas físicas o de congestión, los cuales impiden que los datos lleguen a destino en el momento que debían; los nodos pueden dejar de funcionar debido a problemas de hardware, software, o de capacidad; los datos pueden estar corrompidos por causas en la generación, transmisión o por ataques maliciosos; puede haber diferencias en el protocolo de transmisión de diferentes versiones del software; los relojes pueden desincronizarse; pueden ocurrir problemas de sincronización en el acceso a datos; etc. El resto del sistema distribuido debiese ser capaz de recuperarse en forma independiente del elemento fallido, para cada uno de los casos posibles de falla (8). Además de los problemas asociados con fallas en la red o en los nodos, también existe el problema de que los nodos poseen hardware con capacidad finita. Los elementos más importantes para estos efectos son el tiempo de procesador, la memoria, el espacio en disco y el ancho de banda de la red. Cada nodo tiene por lo general algunos gigabytes de memoria, lo que implica que si el set de datos es de algunos terabytes, se necesitarían del orden de miles de nodos para guardar la información en RAM. Los discos duros proveen un espacio de almacenamiento mucho mayor, que pueden ser del orden de terabytes. Sin embargo, los sets de datos que se generan al procesar la información pueden llegar a ocupar mucho más espacio que el input original, lo que podría llevar a sobrepasar la capacidad de almacenamiento de un nodo y recurrir a la de otro. El ancho de banda es un recurso escaso incluso en una red interna, y mucho más si los nodos están separados por medianas o grandes distancias. Es fácil que se saturen las redes al haber grandes cantidades de datos siendo transferidos, y que por ello se pierdan datos o no lleguen en el momento requerido. Un sistema distribuido de gran escala debe poder manejar los recursos previamente mencionados en forma eficiente, buscando un equilibrio entre el funcionamiento del sistema en forma íntegra y el procesamiento de datos. 11

12 El desafío más grande en el diseño de sistemas distribuidos es la sincronización entre los nodos. Si éstos tienen la capacidad de comunicarse entre sí de manera explícita, se enfrentan riesgos como producir más llamados a procedimientos remotos de los que soporta el sistema, bloqueos mutuos sobre los datos y otras condiciones de carrera. Además está la complejidad de diseñar un sistema que sea capaz de recuperarse ante el fallo de un nodo, con poca pérdida de recursos y redistribuyendo la carga de manera eficiente en el resto del sistema Herramientas La programación funcional utiliza frecuentemente las funciones map y reduce, las que sirvieron como base para que Google creara el framework MapReduce (10). Este modelo de programación tiene la ventaja de proveer automáticamente paralelización y distribución, además de ser tolerante a fallas. Éste fue utilizado por el framework Apache Hadoop, el cual permite crear programas paralelos. Map-reduce trabaja con pares de key/values (llave/valores): la función map recibe uno de estos pares, lo procesa y genera un set de pares intermedios; la función reduce procesa los pares intermedios para generar uno o varios valores finales. Esto se ve ilustrado en el siguiente ejemplo, donde se cuentan las palabras de un texto: int resultado=0 La función map recibe un texto, valorentrada, y emite un par por cada palabra, donde el key es la palabra y el value es 1. En este programa en particular no se utiliza el primer parámetro recibido, llaveentrada. La función reduce recibe entonces un key, llaveintermedia, y una lista con el valor 1 repetido tantas veces como apariciones del key haya habido en el texto original, valoresintermedios, y emite la suma de los valores de la lista. 12

13 Tanto la función map como reduce se pueden ejecutar en forma paralela. Los datos de entrada se pueden distribuir en tantos map como se estime conveniente, usualmente la misma cantidad que el número de procesadores disponibles. Luego se crean tantas funciones reduce como keys hayan, las cuales son procesadas en forma paralela por los procesadores que se asignen. El software se instaló y configuró en varios modos para evaluar la ejecución. También se investigaron herramientas disponibles y se escribieron programas básicos para evaluar la complejidad de desarrollar con este framework. También se buscó información para determinar si el framework es capaz de manejar la gran cantidad de datos que se requiere en la búsqueda de cúmulos de galaxias. Según los creadores, éste es capaz de manejar del orden de petabytes, lo cual es más que suficiente considerando que la cantidad de datos astronómicos que se quieren procesar es de alrededor de 6 terabytes. Además, ya se ha utilizado en el procesamiento de imágenes astronómicas en universidades como la Washington University (11). Respecto a dónde y cómo se debería ejecutar el software desarrollado para procesar la información: el framework está pensado para ser usado con cualquier cantidad de recursos, pero en particular funciona bien con cloud computing. El modelo de programación map-reduce tiene la ventaja de que la escalabilidad es directa, por lo que no es necesario esfuerzo alguno para ejecutarlo en una cantidad mayor de máquinas. Al utilizar cloud computing se pueden arrendar un número variable de recursos, por lo que se puede reducir el tiempo de procesamiento de forma proporcional a la cantidad de procesadores que se arrienden. En caso de aumentar la cantidad de datos a procesar, se pueden arrendar más recursos, pudiendo mantenerse el tiempo de procesamiento relativamente independiente de la cantidad de datos de entrada. Además existen proyectos de grandes compañías como The New York Times y famosas universidades como Stanford, que se han llevado a cabo con Apache Hadoop sobre la plataforma Amazon Elastic Compute Cloud (12). Haciendo una breve comparación con otros sistemas de computación paralela sobre grandes volúmenes de datos, existen otras alternativas como Condor, pero ésta no distribuye los datos automáticamente como Apache Hadoop. Esto significa que el control de datos se debe realizar de forma manual, y que la colaboración entre nodos se debe programar con sistemas de comunicación como MPI, lo cual conlleva un gran esfuerzo y aumenta la probabilidad de errores. Esto no es necesario en Apache Hadoop, pues son tareas automatizadas que constituyen parte del framework, y de las cuales el programador se puede abstraer. Si bien la eficiencia puede ser menor que al computarlo con otros sistemas, la ganancia en 13

14 facilidad para el programador, la escalabilidad directa, y los bajos costos de cloud computing hacen de este framework una buena opción para el proyecto Algoritmo secuencial de detección de cúmulos de galaxias Daniel Pizarro desarrolló un software llamado Vocludet para la detección de cúmulos de galaxias (2). Éste consta de dos partes, el algoritmo VTMLE y el DePropris, siendo el primero utilizado para la detección de cúmulos de galaxias. El algoritmo VTMLE recibe como entrada un set de puntos en un espacio de tres dimensiones, donde cada punto representa las coordenadas de una galaxia que hay en el espacio que se quiere analizar. Con esta información se calcula el diagrama de Voronoi que se construye a partir de los puntos, el cual entrega una estimación de la densidad local de galaxias para cada punto del set. Se itera sobre los datos de entrada para encontrar posibles cúmulos de galaxias, lo que consta de las siguientes fases: Detección de semilla: Para esto se busca el área de mayor densidad de galaxias, lo que equivale a buscar la celda de menor volumen en el diagrama. Se debe verificar que la semilla encontrada no sea parte de un cúmulo encontrado en una iteración previa. Detección de miembros del cúmulo (Algoritmo 1): Partiendo con la semilla como cúmulo base, se trata de aumentar el valor resultante de una función de probabilidad, el Estimador de Máxima Verosimilitud (EMV), agregando los puntos vecinos al cúmulo. Este proceso se lleva a cabo hasta que una de las siguientes dos condiciones deja de cumplirse: o No se puede incrementar el EMV del conjunto al agregar alguno de sus vecinos. En este caso se encontró un cúmulo y se guardan los datos. o El elemento agregado forma parte de otro cúmulo. En este caso se descarta la semilla que originó este cúmulo. El algoritmo recibe el diagrama de Voronoi previamente calculado con la herramienta Qhull. Este software es capaz de generar el diagramas de Voronoi en varias dimensiones. En particular sirve para generar el diagrama de Voronoi en tres dimensiones. A continuación, se presenta el pseudocódigo del algoritmo para el caso de la búsqueda de un cúmulo: 14

15 Algoritmo 1: Algoritmo VTMLE Este pseudocódigo debe enmarcarse dentro del algoritmo general, que busca todos los cúmulos de galaxias en una zona del espacio. En éste se deben hacer la búsqueda de la semilla y el conteo de las celdas usadas y cúmulos de galaxias encontrados, e invocar al algoritmo de búsqueda individual para encontrar posibles cúmulos de galaxias a partir de cada semilla. Se presenta el pseudocódigo del algoritmo general a continuación: 15

16 Algoritmo 2: Algoritmo de detección de cúmulos 16

17 3. Análisis En este capítulo se analizan las herramientas con las que se cuenta para el desarrollo del software, se comparan las diferentes alternativas y su estado, y se decide cuáles se van a utilizar de qué forma Arquitectura de Hadoop Hadoop es un framework que permite procesar datos usando el modelo de programación map-reduce. Está diseñado para procesar grandes volúmenes de información de manera eficiente a través de computación distribuida, conectando computadores y coordinándolos para trabajar juntos en paralelo. Permite trabajar con diferentes cantidades de nodos, permitiendo escalabilidad desde un servidor hasta miles de máquinas, cada una con capacidad de computación y almacenamiento locales. El sistema está diseñado para detectar y manejar fallas en el nivel de aplicación. Esto permite despreocuparse de contar con hardware de alta disponibilidad, ya que el sistema es capaz de soportar y manejar fallas en cualquiera de los nodos del cluster. Si bien existen otros sistemas que realizan procesamiento de grandes volúmenes de datos en sistemas distribuidos, Hadoop tiene la ventaja de proveer un modelo de programación simple, el cual permite escribir y testear sistemas distribuidos de forma rápida. Además provee un sistema eficiente de distribución automática de datos y trabajo en el conjunto de nodos, y también dentro de cada nodo con sus respectivos núcleos. El framework está constituido por las siguientes componentes, que en su totalidad permiten la creación y ejecución de programas distribuidos y en forma paralela: Hadoop Common: Un set de herramientas que sirven de base para otros componentes y proyectos de Hadoop. Esto incluye el sistema de archivos básico, manejo de llamadas a procedimientos remotos, y bibliotecas de serialización. Hadoop Distributed File System (HDFS): Un sistema de archivos distribuido, que provee un rápido acceso y alto flujo de datos. Es el sistema primario de almacenamiento de datos usado por las aplicaciones de Hadoop, el cual replica los bloques de datos y los distribuye en nodos del cluster. Es esta distribución y redundancia la que permite el acceso rápido y la tolerancia a fallos en los nodos del cluster. 17

18 Hadoop MapReduce: Un framework de software para el procesamiento distribuido de grandes cantidades de datos en clusters de computadores. Éste provee un modelo de programación que permite crear aplicaciones que procesan datos en forma paralela. Existen también proyectos que extienden las capacidades de Hadoop, agregando funcionalidades o usándolo como base para realizar tareas de más alto nivel. Entre éstos destacan lenguajes de alto nivel que facilitan el acceso y procesamiento de datos Distribución de datos En un cluster de Hadoop, los datos se distribuyen a todos los nodos a medida que éstos se van cargando en el sistema, como muestra la Figura 1. El HDFS se encarga de particionar los datos y distribuirlos en forma redundante, de tal manera que cada conjunto de datos se encuentre replicado en más de un nodo. Esto evita pérdida o inaccesibilidad a cualquier conjunto de datos, en caso de presentarse fallas en algún nodo o en las redes. Un sistema de monitoreo activo se encarga de replicar los datos en respuesta a fallas en el sistema. A pesar de su distribución en varios nodos, los conjuntos de datos forman parte del mismo espacio de nombres, por lo que son fácil y completamente accesibles. Al cargar la información al sistema, cada archivo se divide en líneas, o en algún otro formato específico para la lógica del programa en particular. A esto se le llama orientación a registros, donde cada registro es una línea o su símil. Cada proceso que esté corriendo en cada nodo procesa un subconjunto de estos registros, siendo el framework quien organiza los datos que se procesan, según la proximidad que éstos tengan a los datos. De esta forma, la mayoría de los datos son leídos directamente desde el disco duro local, aliviando la carga en las redes y evitando transferencias innecesarias. La estrategia utilizada para la organización tareas consiste en mover la capacidad de computación hacia los datos, en vez de mover los datos. Esto se traduce en una alta localización de los datos, que a su vez resulta en un alto desempeño. 18

19 Figura 1: Distribución de datos en Hadoop Procesamiento de datos Hadoop limita la cantidad de comunicación que puede ocurrir entre los procesos, ya que cada registro es procesado por una tarea aislada del resto. Aunque esto suena como una gran limitación en un principio, hace que el framework sea mucho más confiable. Hadoop no está diseñado para ejecutar cualquier programa y distribuirlo en un cluster, sino que los programas deben estar escritos en acuerdo a un modelo de programación en particular, llamado MapReduce. En MapReduce, los registros son procesados de forma aislada por tareas llamadas mappers, las que suelen utilizarse para clasificar datos. En caso de ser necesario, un proceso llamado shuffle toma los resultados obtenidos por todos los mappers, y los agrupa según estas clasificaciones. Finalmente los datos son procesados por tareas llamadas reducers, donde cada una recibe datos pertenecientes a una o más clasificaciones, y las procesa. La Figura 2 muestra el proceso recién descrito. 19

20 Figura 2: Procesos de map y reduce en Hadoop Los nodos de un cluster de Hadoop se comunican entre sí, pero a diferencia de otros sistemas distribuidos, donde los desarrolladores de la aplicación ordenan explícitamente los flujos de datos de nodo a nodo a través de buffers MPI, la comunicación en Hadoop se lleva a cabo de forma implícita. Los subconjuntos de datos pueden ser etiquetados, lo que es utilizado por Hadoop para saber cómo enviar la información a un nodo destinatario común. Hadoop maneja internamente todas las transferencias de datos y los asuntos referentes a la topología del cluster. Al restringir la comunicación entre los nodos, Hadoop hace que el sistema distribuido sea mucho más confiable. Las fallas individuales en los nodos pueden solucionarse reiniciando las tareas en otras máquinas. Dado que las tareas a nivel de usuario no se comunican explícitamente entre sí, no es necesario un intercambio de mensajes en los programas de usuario, ni tampoco definir puntos de retorno para retomar la ejecución en caso de fallas. Ante la falla en un nodo, el resto de los nodos continúan operando como si nada hubiese pasado, dejando las complicaciones del reinicio parcial del programa a la capa subyacente de Hadoop. 20

21 Escalabilidad Una de los grandes beneficios de Hadoop en comparación a otros sistemas distribuidos, es su curva plana de escalabilidad. El rendimiento de Hadoop puede no ser espectacular si es que se ejecuta con pocos datos bajo un pequeño número de nodos, ya que el sobrecosto asociado a iniciar programas de Hadoop es relativamente alto. Otros paradigmas de programación paralelos o distribuidos como MPI (Message Passing Interface) pueden presentar un mejor desempeño al ejecutarse con menos de diez máquinas. Aunque el esfuerzo de coordinación entre un pequeño número de máquinas puede ser mejor llevado por tales tipos de sistemas, el costo que se paga en rendimiento y esfuerzo por parte de los ingenieros al añadir más hardware como resultado del incremento en el volumen de datos, crece de forma no lineal. Un programa escrito en otros frameworks distribuidos, pueden requerir grandes cantidades de refactorización al escalar de diez a cien o a mil máquinas. Esto puede requerir que el programa se reescriba varias veces; elementos fundamentales de su diseño pueden también poner un tope a la escala de crecimiento de la aplicación. Hadoop, en contraste, está específicamente diseñado para tener una curva de escalabilidad muy plana. Luego de que un programa en Hadoop está escrito y funcionando en diez nodos, muy poco o nulo trabajo es requerido para correr el mismo programa sobre una cantidad mucho mayor de hardware. Se requiere muy poco trabajo extra sobre una aplicación para poder crecer en órdenes de magnitud. La plataforma de Hadoop subyacente maneja los recursos de datos y hardware, y provee un crecimiento en el rendimiento dependiente, proporcional al número de máquinas disponibles HDFS El sistema de archivos distribuidos de Hadoop, HDFS, es un sistema de archivos diseñado para guardar grandes cantidades de datos (terabytes e incluso petabytes), y proveer acceso de alto flujo de datos a esta información. Los archivos son almacenados de manera redundante a través de múltiples máquinas, para asegurar su resistencia a fallas y su alta disponibilidad a aplicaciones altamente paralelas, tal como se muestra en la Figura 3. 21

22 Figura 3: HDFS de Hadoop Un sistema de archivos distribuido está diseñado para almacenar grandes cantidades de datos y proveer acceso a estos datos a la mayor cantidad de clientes distribuidos a través de la red. Existen varios sistemas de archivos distribuidos que resuelven este problema de diferentes maneras, como el NFS (Network File System) de Linux. HDFS está diseñado para ser robusto frente a un gran número de problemas a los que otros sistemas de archivos distribuidos, como NFS son vulnerables. En particular: El HDFS está diseñado para almacenar una gran cantidad de información (terabytes o petabytes). Esto requiere distribuir los datos en un gran número de máquinas. También es capaz de manejar tamaños de archivo mucho mayores a los que puede manejar NFS. El HDFS almacena los datos de manera confiable. Si falla alguna máquina del cluster, los datos deberían seguir estando disponibles. El HDFS provee acceso rápido y escalable a esta información. Debiese ser posible proveer servicios a un número mayor de clientes sólo agregando más máquinas al cluster. El HDFS se integra bien con el Hadoop MapReduce, permitiendo que los datos sean leídos y computados localmente cuando sea posible. 22

Alessandro Chacón 05-38019. Ernesto Level 05-38402. Ricardo Santana 05-38928

Alessandro Chacón 05-38019. Ernesto Level 05-38402. Ricardo Santana 05-38928 Alessandro Chacón 05-38019 Ernesto Level 05-38402 Ricardo Santana 05-38928 CONTENIDO Universo Digital Hadoop HDFS: Hadoop Distributed File System MapReduce UNIVERSO DIGITAL 161 EB 2006 Fuente: International

Más detalles

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Memoria Compartida Distribuida (DSM) Sistema de Archivos Memoria Compartida Distribuida (DSM) La memoria compartida distribuida es una abstracción que se propone como alternativa a la comunicación por mensajes. Memoria compartida basada en páginas: este esquema

Más detalles

FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS

FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS FaceFinder MÓDULO DE BÚSQUEDA DE PERSONAS DENTRO DE UNA BASE DE DATOS DE ROSTROS Introducción Los algoritmos utilizados para el procesamiento de imágenes son de complejidad computacional alta. Por esto

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López APACHE HADOOP Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López Objetivos 1. Qué es Apache Hadoop? 2. Funcionalidad 2.1. Map/Reduce 2.2. HDFS 3. Casos prácticos 4. Hadoop

Más detalles

BIG DATA. Jorge Mercado. Software Quality Engineer

BIG DATA. Jorge Mercado. Software Quality Engineer BIG DATA Jorge Mercado Software Quality Engineer Agenda Big Data - Introducción Big Data - Estructura Big Data - Soluciones Conclusiones Q&A Big Data - Introducción Que es Big Data? Big data es el termino

Más detalles

Qué significa Hadoop en el mundo del Big Data?

Qué significa Hadoop en el mundo del Big Data? Qué significa Hadoop en el mundo del Big Data? Un contenido para perfiles técnicos 2 ÍNDICE Qué significa Hadoop en el Universo Big Data?.... 3 El planteamiento: big data y data science.... 3 Los desafíos

Más detalles

Big data A través de una implementación

Big data A través de una implementación Big data A través de una implementación Lic. Diego Krauthamer Profesor Adjunto Interino del Área Base de Datos Universidad Abierta Interamericana Facultad de Tecnología Informática Buenos Aires. Argentina

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Global File System (GFS)...

Global File System (GFS)... Global File System (GFS)... Diferente a los sistemas de ficheros en red que hemos visto, ya que permite que todos los nodos tengan acceso concurrente a los bloques de almacenamiento compartido (a través

Más detalles

CURSO: DESARROLLADOR PARA APACHE HADOOP

CURSO: DESARROLLADOR PARA APACHE HADOOP CURSO: DESARROLLADOR PARA APACHE HADOOP CAPÍTULO 3: HADOOP CONCEPTOS BÁSICOS www.formacionhadoop.com Índice 1 Introducción a Hadoop 1.1 Proyecto Hadoop 1.2 Conceptos de Hadoop 2 Cluster Hadoop 2.1 Demonios

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

CURSOS DE VERANO 2014

CURSOS DE VERANO 2014 CURSOS DE VERANO 2014 CLOUD COMPUTING: LA INFORMÁTICA COMO SERVICIO EN INTERNET LA PLATAFORMA GOOGLE CLOUD PLATFORM. GOOGLE APP ENGINE Pedro A. Castillo Valdivieso Universidad de Granada http://bit.ly/unia2014

Más detalles

:Arquitecturas Paralela basada en clusters.

:Arquitecturas Paralela basada en clusters. Computación de altas prestaciones: Arquitecturas basadas en clusters Sesión n 1 :Arquitecturas Paralela basada en clusters. Jose Luis Bosque 1 Introducción Computación de altas prestaciones: resolver problemas

Más detalles

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software.

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. . TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. Índice 1 INTRODUCCIÓN 2 2 CARACTERÍSTICAS 2 2.1 Características del cliente...2 2.2 Características

Más detalles

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

SISTEMAS DE ARCHIVOS DISTRIBUIDOS SISTEMAS DE ARCHIVOS DISTRIBUIDOS Tema # VII Sistemas de operación II Abril-Julio 2008 Yudith Cardinale Introducción Requisitos Aspectos de Diseño Servicios de archivos Servicios de directorios Módulo

Más detalles

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas CAPITULO 1 Introducción a los Conceptos Generales de 1.1 Preliminares Las empresas necesitan almacenar información. La información puede ser de todo tipo. Cada elemento informativo es lo que se conoce

Más detalles

Modelo de aplicaciones CUDA

Modelo de aplicaciones CUDA Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas

Más detalles

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

TEMA 1: INTRODUCCIÓN

TEMA 1: INTRODUCCIÓN 1 DISEÑO Y DESARROLLO DE COMPILADORES TEMA 1: INTRODUCCIÓN Qué es un Compilador? Un compilador no es más que un traductor, es decir, un programa que nos permite pasar información de un lenguaje a otro.

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción: arquitecturas

Más detalles

Big Data y Supercómputo. Dr. Jesús Antonio González (jagonzalez@inaoep.mx) Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE)

Big Data y Supercómputo. Dr. Jesús Antonio González (jagonzalez@inaoep.mx) Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE) Big Data y Supercómputo Dr. Jesús Antonio González (jagonzalez@inaoep.mx) Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE) Big Data 2 Hasta qué cantidad de datos podemos procesar en nuestra

Más detalles

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas Unidad I Fundamentos de Sistemas Distribuidos M.C. Juan Carlos Olivares Rojas Temario 1.1. Características de un sistema distribuido 1.2. Objetivos de los sistemas distribuidos 1.3. Ventajas y desventajas

Más detalles

Análisis de desempeño y modelo de escalabilidad para SGP

Análisis de desempeño y modelo de escalabilidad para SGP Análisis de desempeño y modelo de escalabilidad para SGP Este documento es producto de la experiencia de Analítica en pruebas de stress sobre el software SGP. Estas pruebas se realizaron sobre un proceso

Más detalles

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

Es un software del tipo MAP-REDUCE realizada usando la librería MPI para la

Es un software del tipo MAP-REDUCE realizada usando la librería MPI para la Es un software del tipo MAP-REDUCE realizada usando la librería MPI para la ejecución de programas secuenciales de forma paralela con el requisito de no modificar los programas secuenciales. La idea fundamental

Más detalles

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 1: Introducción: 1.1 Introducción: Qué es un sistema operativo?. 1.2 Conceptos clave de un sistema operativo. 1.3 El sistema operativo como administrador

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Capítulo 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacción.

Más detalles

Proyecto Fin de Carrera OpenNebula y Hadoop: Cloud Computing con herramientas Open Source

Proyecto Fin de Carrera OpenNebula y Hadoop: Cloud Computing con herramientas Open Source Proyecto Fin de Carrera OpenNebula y Hadoop: Cloud Computing con herramientas Open Source Francisco Magaz Villaverde Consultor: Víctor Carceler Hontoria Junio 2012 Contenido Introducción Qué es Cloud Compu5ng?

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS I. Fundamentos del sistema operativo. OBJETIVO: El alumno seleccionará un sistema operativo de acuerdo

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Motores de Búsqueda Web Tarea Tema 2

Motores de Búsqueda Web Tarea Tema 2 Motores de Búsqueda Web Tarea Tema 2 71454586A Motores de Búsqueda Web Máster en Lenguajes y Sistemas Informáticos - Tecnologías del Lenguaje en la Web UNED 30/01/2011 Tarea Tema 2 Enunciado del ejercicio

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Módulo: Modelos de programación para Big Data

Módulo: Modelos de programación para Big Data Program. paralela/distribuida Módulo: Modelos de programación para Big Data (título original: Entornos de programación paralela basados en modelos/paradigmas) Fernando Pérez Costoya Introducción Big Data

Más detalles

O3 DESIGNER. Guía de uso

O3 DESIGNER. Guía de uso IdeaSoft Uruguay S.R.L. Phone: +598 (2) 710 4372 21 de Setiembre 2570 Fax: +598 (2) 710 4965 Montevideo http://www.ideasoft.com.uy Uruguay O3 DESIGNER Guía de uso O3 - Manual del Desarrollador Tabla de

Más detalles

CURSOS DE VERANO 2014

CURSOS DE VERANO 2014 CURSOS DE VERANO 2014 CLOUD COMPUTING: LA INFORMÁTICA COMO SERVICIO EN INTERNET La plataforma Google Cloud Platform. Google App Engine Pedro A. Castillo Valdivieso Universidad de Granada La plataforma

Más detalles

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed COMPUTADORES MULTINUCLEO Stallings W. Computer Organization and Architecture 8ed Computador multinucleo Un computador multinúcleocombina dos o mas procesadores (llamados núcleos) en una única pieza de

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Nombres y Sistemas de Archivos en Sistemas Distribuidos

Nombres y Sistemas de Archivos en Sistemas Distribuidos Nombres y Sistemas de Archivos en Sistemas Distribuidos Definiciones Nombre: cadena de bits o caracteres que se usan para referirse a una entidad. Entidad: casi cualquier cosa en un sistema distribuido.

Más detalles

TIPOS DE SISTEMAS OPERATIVOS

TIPOS DE SISTEMAS OPERATIVOS TIPOS DE SISTEMAS OPERATIVOS En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se cubrirán tres clasificaciones: sistemas operativos por su estructura

Más detalles

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Clusters Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Introducción Aplicaciones que requieren: Grandes capacidades de cómputo: Física de partículas, aerodinámica, genómica, etc. Tradicionalmente

Más detalles

Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co. Universidad Pedagógica y Tecnológica de Colombia. Colombia

Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co. Universidad Pedagógica y Tecnológica de Colombia. Colombia Facultad de Ingeniería ISSN: 0121-1129 revista.ingenieria@uptc.edu.co Universidad Pedagógica y Tecnológica de Colombia Colombia Amézquita-Mesa, Diego Germán; Amézquita-Becerra, Germán; Galindo-Parra, Omaira

Más detalles

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK. www.formacionhadoop.com

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK. www.formacionhadoop.com CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK www.formacionhadoop.com Índice 1 Qué es Big Data? 2 Problemas con los sistemas tradicionales 3 Qué es Spark? 3.1 Procesamiento de datos distribuido

Más detalles

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico.

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico. Desarrollo de un cluster computacional para la compilación de algoritmos en paralelo en el Observatorio Astronómico. John Jairo Parra Pérez Resumen Este artículo muestra cómo funciona la supercomputación

Más detalles

Sybase IQ Servidor analítico con arquitectura basada en columnas

Sybase IQ Servidor analítico con arquitectura basada en columnas Sybase IQ Servidor analítico con arquitectura basada en columnas www.sybase.es Sybase IQ Descripción Tener acceso a toda la información de que dispone su organización, con el fin de analizarla no es hoy

Más detalles

Proyecto Infraestructura Virtual

Proyecto Infraestructura Virtual 2011 Proyecto Infraestructura Virtual Integrates: RevolucionUnattended 01/01/2011 CONTENIDO ESCUELA POLITÉCNICA NACIONAL 1. INTRODUCCION 1.1. Propósito 1.2. Ámbito del Sistema 1.2.1 Descripción 1.2.2 Objetivos

Más detalles

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009

Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga. Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar pruebas de carga Documento técnico de Oracle Junio de 2009 Identificación rápida de cuellos de botella: Una mejor manera de realizar

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Universidad de Chile - Magister Artes Mediales ARTE / INTERNET. Clase 2: Software, Internet

Universidad de Chile - Magister Artes Mediales ARTE / INTERNET. Clase 2: Software, Internet Universidad de Chile - Magister Artes Mediales ARTE / INTERNET Clase 2: Software, Internet ... Maquina Universal de Turing Software Hardware Arquitectur as computacionales Estructuración algorítmica de

Más detalles

Generalidades Computacionales

Generalidades Computacionales Capítulo 2 Generalidades Computacionales 2.1. Introducción a los Computadores Definición: Un computador es un dispositivo electrónico que puede transmitir, almacenar, recuperar y procesar información (datos).

Más detalles

Sistemas de Archivos Distribuidos. Daniel Leones Andrea Salcedo

Sistemas de Archivos Distribuidos. Daniel Leones Andrea Salcedo Sistemas de Archivos Distribuidos Daniel Leones Andrea Salcedo Qué es un Sistema de Archivos Distribuido? Un sistema de archivos distribuido clásico es una aplicación cliente/servidor que permite a los

Más detalles

Solución empresarial Hadoop de EMC. NAS de escalamiento horizontal Isilon y Greenplum HD

Solución empresarial Hadoop de EMC. NAS de escalamiento horizontal Isilon y Greenplum HD Informe técnico Solución empresarial Hadoop de EMC NAS de escalamiento horizontal Isilon y Greenplum HD Por Julie Lockner, analista ejecutivo, y Terri McClure, analista ejecutivo Febrero de 2012 Este Informe

Más detalles

O3 Requerimientos de Software y Hardware

O3 Requerimientos de Software y Hardware IdeaSoft Uruguay S.R.L. Phone: +598 (2) 710 4372 21 de Setiembre 2570 Fax: +598 (2) 710 4965 Montevideo http://www.ideasoft.com.uy Uruguay O3 Requerimientos de Software y Hardware Uso de memoria, espacio

Más detalles

ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS

ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS Informe ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS Análisis detallado Resumen Ningún mecanismo por sí mismo es suficiente

Más detalles

Yersinio Jiménez Campos Analista de datos Banco Nacional de Costa Rica

Yersinio Jiménez Campos Analista de datos Banco Nacional de Costa Rica Fundamentos Título de de Big la Data presentación utilizando MATLAB Yersinio Jiménez Campos Analista de datos Banco Nacional de Costa Rica 1 Agenda Qué es Big Data? Buenas prácticas en el manejo de memoria.

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

Marco Teórico MARCO TEÓRICO. AGNI GERMÁN ANDRACA GUTIERREZ

Marco Teórico MARCO TEÓRICO. AGNI GERMÁN ANDRACA GUTIERREZ MARCO TEÓRICO. 13 14 Virtualización Hablar de virtualización es hablar de un concepto que describe la posibilidad de tener varios sistemas operativos funcionando al mismo tiempo en un mismo equipo físico.

Más detalles

TIPOS DE PROCESAMIENTOS

TIPOS DE PROCESAMIENTOS TIPOS DE PROCESAMIENTOS El desempeño de un computador puede tener diferentes medidas de elección para diferentes usuarios. Para un usuario individual que está ejecutando un único programa, la computadora

Más detalles

INTEGRACIÓN DE SISTEMAS HEREDADOS

INTEGRACIÓN DE SISTEMAS HEREDADOS CAPÍTULO 2 INTEGRACIÓN DE SISTEMAS HEREDADOS En el presente capítulo, se presenta el problema de integración de sistemas de Software. Una de cuyas características es la presencia de los llamados Sistemas

Más detalles

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Plataforma Cloud con HP 3PAR y VMware vsphere

Plataforma Cloud con HP 3PAR y VMware vsphere Mayo 2011 Elaborado por nerion Todos los derechos reservados. Plataforma Cloud con HP 3PAR y VMware vsphere SOBRE NERION nerion es una de las principales Empresas españolas de registro de dominios, hosting

Más detalles

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala 1. Introducción Los procesadores con dos núcleos existen actualmente, y los procesadores de cuatro están insertándose en el mercado lentamente,

Más detalles

Memoria Virtual. Figura 1: Memoria Virtual

Memoria Virtual. Figura 1: Memoria Virtual 1 Memoria Virtual. Qué podemos hacer si un programa es demasiado grande para caber en la memoria disponible? Una posibilidad es usar superposiciones (overlays), como en MS-DOS: dividimos el programa en

Más detalles

ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS

ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS Informe técnico ARQUITECTURA DE INVULNERABILIDAD DE DATOS DE EMC DATA DOMAIN: MEJORA DE LA CAPACIDAD DE RECUPERACIÓN Y LA INTEGRIDAD DE LOS DATOS Análisis detallado Resumen Ningún mecanismo por sí mismo

Más detalles

Hadoop. Cómo vender un cluster Hadoop?

Hadoop. Cómo vender un cluster Hadoop? Hadoop Cómo vender un cluster Hadoop? ÍNDICE Problema Big Data Qué es Hadoop? Descripción HDSF Map Reduce Componentes de Hadoop Hardware Software 3 EL PROBLEMA BIG DATA ANTES Los datos los generaban las

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Marcación eficiente inigualable

Marcación eficiente inigualable Marcación eficiente inigualable Tu WombatDialer es una herramienta bastante poderosa: permite ampliarse lo suficiente para poder gestionar miles de llamados al mismo tiempo. Sin importar si tienes 100

Más detalles

FUNDAMENTOS DE INFORMATICA

FUNDAMENTOS DE INFORMATICA FUNDAMENTOS DE INFORMATICA TEMAS QUE SE TRATARÁN: Arquitectura Interna Sistemas Operativos Programación en Visual Basic Bases de Datos Redes e Internet 1 FUNDAMENTOS DE INFORMATICA Tema 1: Arquitectura

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

MapReduce. Modelo de programación MapReduce. MapReduce. Sistemas Distribuidos. Tecnologías procesado masivo de datos. Vamos a contar palabras

MapReduce. Modelo de programación MapReduce. MapReduce. Sistemas Distribuidos. Tecnologías procesado masivo de datos. Vamos a contar palabras Tecnologías procesado masivo de datos Sistemas Distribuidos Modelo de programación Modelo de programación Alm. lógico Alm. físico Serv. genéricos Pregel... BigTable GFS Serv. genéricos 2 Vamos a contar

Más detalles

Examinaremos las características claves de las memorias y luego analizaremos el subsistema de memoria principal.

Examinaremos las características claves de las memorias y luego analizaremos el subsistema de memoria principal. GUIA 25: La memoria es un medio físico capaz de almacenar información (programas y datos) de forma temporal o permanente. Sin memoria no puede haber computadoras como las conocemos ahora. Aunque conceptualmente

Más detalles

Información básica. Qué es un disco duro?

Información básica. Qué es un disco duro? Este capítulo presenta conceptos que usted debe entender para utilizar Drive Image con éxito. Entre ellos se incluyen: Qué es un disco duro? Cómo se almacenan y recuperan los datos? Qué es el formateo

Más detalles

las API de CA Nimsoft

las API de CA Nimsoft INFORME OFICIAL las API de CA Nimsoft claves para una administración de servicios eficaz agility made possible tabla de contenido Introducción 3 API operativas de CA Nimsoft 4 API de recolección de datos

Más detalles

D.4.3.1 Definición de la infraestructura de soporte.

D.4.3.1 Definición de la infraestructura de soporte. D.4.3.1 Definición de la infraestructura de soporte. RESUMEN EJECUTIVO El proyecto CloudPYME ha analizado, desarrollado y probado tres servicios de valor añadido para las PYME de la Euroregión Galicia-Norte

Más detalles

Dentro de los arreglos de almacenamiento. iscsi de la serie

Dentro de los arreglos de almacenamiento. iscsi de la serie Dentro de los arreglos de almacenamiento iscsi de la serie PS de EqualLogic Basada en una arquitectura patentada de almacenamiento del mismo nivel, la serie PS EqualLogic de arreglos de almacenamiento

Más detalles

Planos de ejecución en Velneo V7

Planos de ejecución en Velneo V7 Planos de ejecución en Velneo V7 Por Jesús Arboleya Introducción 3 Arquitectura Cliente/Servidor 4 1. Objetos que siempre se ejecutan en el servidor 5 2. Objetos que siempre se ejecutan en el cliente 6

Más detalles

Gestión de la Virtualización

Gestión de la Virtualización Gestión de la Virtualización Las arquitecturas de TI tradicionales se han basado generalmente en silos, con recursos informáticos dedicados a aplicaciones específicas y el exceso o sobre dotación de recursos

Más detalles

PROGRAMA FORMATIVO Desarrollador Big Data Cloudera Apache Hadoop

PROGRAMA FORMATIVO Desarrollador Big Data Cloudera Apache Hadoop PROGRAMA FORMATIVO Desarrollador Big Data Cloudera Apache Hadoop Julio 2015 DATOS GENERALES DE LA ESPECIALIDAD 1. Familia Profesional: INFORMÁTICA Y COMUNICACIONES (IFC) Área Profesional: DESARROLLO 2.

Más detalles

Etapas del desarrollo

Etapas del desarrollo Capítulo 4 Etapas del desarrollo Este capítulo documenta la aplicación del modelo presentado anteriormente, para el caso de la detección y clasificación de eventos sísmicos sobre señales digitales. El

Más detalles

51 Int. CI.: G06F 17/30 (2006.01) TRADUCCIÓN DE PATENTE EUROPEA

51 Int. CI.: G06F 17/30 (2006.01) TRADUCCIÓN DE PATENTE EUROPEA 19 OFICINA ESPAÑOLA DE PATENTES Y MARCAS ESPAÑA 11 Número de publicación: 2 460 021 1 Int. CI.: G06F 17/ (06.01) 12 TRADUCCIÓN DE PATENTE EUROPEA T3 96 Fecha de presentación y número de la solicitud europea:

Más detalles

5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES

5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES SISTEMAS DISTRIBUIDOS DE REDES 5. MODELOS DE CLIENTE Y SERVIDOR ORIENTADOS A AGENTES MÓVILES Programación remota: Introducción y generalidades INTRODUCCIÓN Debido a la dificultad de la arquitectura actual

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

Tipos de comunicación La comunicación puede ser:

Tipos de comunicación La comunicación puede ser: Unidad 3. Procesos concurrentes 3.3 Semáforos (informática) Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos

Más detalles

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 4 o Ingeniería Informática II26 Procesadores de lenguaje Estructura de los compiladores e intérpretes 2. Etapas del proceso de traducción 3. La interpretación 4. La arquitectura

Más detalles

Evaluación de la herramienta de código libre Apache Hadoop Universidad Carlos III de Madrid Escuela Politécnica Superior

Evaluación de la herramienta de código libre Apache Hadoop Universidad Carlos III de Madrid Escuela Politécnica Superior Evaluación de la herramienta de código libre Apache Hadoop Universidad Carlos III de Madrid Escuela Politécnica Superior Proyecto Fin de Carrera INGENIERÍA TÉCNICA DE TELECOMUNICACIÓN: TELEMÁTICA Autora:

Más detalles

Análisis de sentimientos de tweets.

Análisis de sentimientos de tweets. Análisis de sentimientos de tweets. JIT-CITA 2013 Resumen Un sensor de sentimientos de tweets para identificar los mensajes positivos, negativos y neutros sobre cualquier trend que se tome sobre esta red

Más detalles

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com EMPRESAS TUXPAN www.tuxpan.com AÑO 2007 INDICE DE CONTENIDO 1 Software de Servicios y Orquestación de Procesos 2 1.1.1 Introducción 2 1.1.2 Software de Orquestación como Integrador 3 1.1.3 Automatización

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 6 Situación Contraste externo Actualización

Más detalles

Comprender un poco más de los que es Apache Pig y Hadoop. El tutorial de cerdo muestra cómo ejecutar dos scripts de cerdo en modo local y el

Comprender un poco más de los que es Apache Pig y Hadoop. El tutorial de cerdo muestra cómo ejecutar dos scripts de cerdo en modo local y el APACHE PIG CONTENIDO 1. Introducción 3 1.1. Apache Pig 3 1.2. Propiedades 4 1.3. Requisitos para Apache Pig 4 1.4. Instalación de Hadoop 5 1.5. Instalación de java 5 1.6. Instalación de Pig 6 1.7. Ejecución

Más detalles

1. O3 Designer... 2 1.1 Componentes de O3 Designer... 2 1.1.1 Árbol de Diseño y Panel de Propiedades... 3 1.1.2 Barra de Herramientas de O3

1. O3 Designer... 2 1.1 Componentes de O3 Designer... 2 1.1.1 Árbol de Diseño y Panel de Propiedades... 3 1.1.2 Barra de Herramientas de O3 1. O3 Designer................................................................................................ 2 1.1 Componentes de O3 Designer.............................................................................

Más detalles

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente Capítulo 5: Aplicaciones cliente 46 5.1 La aplicación cliente en la Pocket PC La aplicación desarrollada para el cliente en un dispositivo móvil como corresponde a la Pocket PC necesita una capa muy delgada

Más detalles

Arquitecturas de Bases de Datos. Carlos A. Olarte (carlosolarte@puj.edu.co) BDII

Arquitecturas de Bases de Datos. Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Carlos A. Olarte (carlosolarte@puj.edu.co) BDII Contenido 1 Introducción 2 Arquitectura Centralizada 3 Arquitectura Cliente-Servidor 4 Arquitecturas Paralelas 5 Bases de Datos Distribuidas Introducción

Más detalles

SESIÓN 8 TIPOS DE SISTEMAS DE MANUFACTURA

SESIÓN 8 TIPOS DE SISTEMAS DE MANUFACTURA SESIÓN 8 TIPOS DE SISTEMAS DE MANUFACTURA CONTENIDO Términos en manufactura Clasificación de sistemas de manufactura Beneficios y ejemplos de sistemas de manufactura Los componentes de un sistema de manufactura

Más detalles