Thursday, August 29, 2013

Algoritmo Paralelo


En oposición a los algoritmos clásicos o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado correcto. Algunos algoritmos son fácilmente divisibles en partes; como por ejemplo, un algoritmo que calcule todos los números primos entre 1 y 100, donde se podría dividir los números originales en subconjuntos y calcular los primos para cada uno de los subconjuntos de los números originales; al final, uniríamos todos los resultados y tendríamos la solución final del algoritmo. Los algoritmos paralelos son importantes porque es más rápido tratar grandes tareas de computación mediante la paralelización que mediante técnicas secuenciales. Esta es la forma en que se trabaja en el desarrollo de los procesadores modernos, ya que es más difícil incrementar la capacidad de procesamiento con un único procesador que aumentar su capacidad de cómputo mediante la inclusión de unidades en paralelo, logrando así la ejecución de varios flujos de instrucciones dentro del procesador.

Para sistemas paralelos con memoria distribuida el tiempo paralelo con p procesadores, TP, se determina de modo aproximado mediante la fórmula


TP \approx TA + TC %u2212 TS




Donde TA es el tiempo aritmético, es decir, el tiempo que tarda el sistema multiprocesador en hacer las operaciones aritméticas; TC es el tiempo de comunicación, o sea, el tiempo que tarda el sistema multiprocesador en ejecutar transferencias de datos; y TS es el tiempo de solapamiento, que es el tiempo que transcurre cuando las operaciones aritméticas y de comunicaciones se realizan simultáneamente. Ganancia de velocidad (Speed-Up) El Speed-Up para p procesadores, SP , es el cociente entre el tiempo de ejecución de un programa secuencial, TS, y el tiempo de ejecución de la versión paralela de dicho programa en p procesadores, TP Este índice indica la ganancia de velocidad que se ha obtenido con la ejecución en paralelo.

SP = \frac{TS}{TP}


El ejemplo mas comun de uso de hilos son los sistemas operativos y las aplicaciones de los mismos OS usando hilos para hacer mas rapido las ejecuciones de las mismas






Descripción de nuestro ejemplo 

Cosas que se tomaron en cuenta para la elaboración de este ejemplo 
  • Simplicidad de realización
  • Entendimiento de la importancia de los hilos para los procesadores







Para este ejemplo se utilizaron hilos que es una pequeña simulación de los procesos de ejecución de programas en los OS  y se usaron tres programas distintos y se ejecuto una impresión en todos ellos con los mismos caracteres y se midió de su ejecución el tiempo que se tardaba en ejecutarlos


En este diagrama se muestra como se ejecuta el programa y se va midiendo el tiempo que se tarda en su ejecución por cada hilo






Referencias [Tesis Doctorado] [Wiki]

Tuesday, August 20, 2013

Diseño y estructuración

Equipo

Gabriela Azucena Martinez Aldape  1490592
Esperanza Karen Alduncin Ibarra     1476867
Mario Alberto Morales Nieto            1335110

Act.      Descripción

  1. Diseño, estructuración y puesto en blog.
  2. Algoritmo paralelo.
  3. Aplicación en 3 lenguajes de programación.
  4. Análisis y conclusión de las aplicaciones.
  5. Algoritmo Distribuido.
  6. Implementación del algoritmo distribuido.
  7. Presentación del caso de aplicación y detalles.
  8. Fases y planificación de la implementación.
  9. Fases y planificación de la implementación.
  10. Resultado final, evidencia y conclusión.