Anúncio

Algoritmos Paralelos

26 de Mar de 2023
Anúncio

Mais conteúdo relacionado

Anúncio

Algoritmos Paralelos

  1. Algoritmos Paralelos Rayni Nuñez Espino, 22-1014
  2. ¿Qué es el procesamiento concurrente?
  3. Antes de hablar sobre los algoritmos paralelos, primero debemos entender el concepto de concurrencia. La concurrencia es la ejecución simultánea de múltiples programas que están relacionados. La concurrencia es utilizada en tareas donde se deban procesar una gran cantidad de datos compleja.
  4. Algoritmos Paralelos
  5. ¿Qué es un algoritmo paralelo? El problema es dividido en sub- problemas y son ejecutados en paralelo para conseguir salidas individuales, luego, estas salidas se combinan para conseguir la salida deseada
  6. No es fácil dividir grandes problemas en subproblemas, debido a que estos subproblemas pueden tener dependencias entre ellos, por lo tanto, los procesadores deben comunicarse entre sí para poder resolver el problema. Se ha encontrado que el tiempo que necesitan los procesadores para comunicarse es más grande que el tiempo necesario para realizar las tareas asignadas. Por lo que necesitamos una utilización apropiada del CPU. ¿Qué es un algoritmo paralelo?
  7. Un modelo multiprocesador es una generalización del modelo secuencial RAM, en donde hay más de un procesador. Los modelos multiprocesadores pueden ser clasificados en tres (3) tipos básicos: 1. Modelo de máquina con memoria local 2. Modelo de máquina con memoria modular 3. Modelo de máquina con memoria de acceso aleatorio paralela (PRAM) Modelos multiprocesadores
  8. Los tres tipos multiprocesadores difieren en la forma en la que acceden a la memoria. En un modelo de máquina con memoria local, cada procesador puede acceder a su memoria local directamente, pero solo se puede comunicar con la memoria de otro procesador enviando un request de memoria a través de la red. En un modelo modular, el procesador accede a la memoria en un módulo de memoria enviando un request de memoria a través de la red. Normalmente los procesadores y módulos de memoria están organizados en una forma que el tiempo de cada procesador en acceder a la memoria sea equivalente. El modelo PRAM es controversial debido a que no hay ninguna máquina que viva a su tiempo ideal para acceder a la memoria. Modelos multiprocesadores
  9. El análisis de algoritmos paralelos es importante ya que ayuda a comprender los problemas de escalabilidad. Hablando matemáticamente, si n es el tamaño de las entradas, p el número de procesadores y Tseq (n) el tiempo de ejecución secuencial, entonces el tiempo de ejecución en paralelo debería parecerse a O + (Tseq(n/p)) + f(n,p) ) donde f crece más lentamente que Tseq para n grande. Esto significa que para entradas grandes, el algoritmo es rentable en comparación con la solución secuencial. Si f crece lentamente, el algoritmo es escalable para valores grandes de p incluso para valores pequeños de n/p. Para computación paralela masiva, podemos adoptar el antiguo objetivo de los algoritmos PRAM para lograr una f que sea poli logarítmica en n y p (es decir, O(logk (np)) para alguna constante k). En máquinas más pequeñas, los requisitos de escalabilidad menos estrictos pueden conducir a algoritmos más simples o mejores factores constantes.
  10. A pesar de los enormes esfuerzos en los lenguajes de programación paralelos y en la paralelización de compiladores, la implementación de algoritmos paralelos sigue siendo uno de los principales desafíos en el ciclo de ingeniería de algoritmos. Hay varias razones para esto. Primero, existen enormes brechas semánticas entre la descripción del algoritmo abstracto, las herramientas de programación utilizadas y el hardware real. En particular, los códigos realmente eficientes a menudo usan interfaces de programación de nivel bastante bajo, como MPI o operaciones de memoria atómica para mantener manejables los gastos generales para la interacción del procesador. Además, la depuración de programas paralelos es notoriamente difícil. Dado que el rendimiento es la razón principal para usar computadoras paralelas en primer lugar, y debido a la complejidad del hardware paralelo, el ajuste del rendimiento es una parte importante de la fase de implementación.
  11. Referencias ● Parallel Algorithm - Introduction (tutorialspoint.com) ● https://www.cs.cmu.edu/~guyb/papers/BM04.pdf ● https://cell-devs.sce.carleton.ca/publications/2007/JW07/PPL_Journal_revised.pdf ● Engineering Parallel Algorithms (acm.org)
Anúncio