Anzeige

Actividad 14. Diseño de Algoritmos Paralelos - Jhoan De Los Santos (22-1005).pptx

27. Mar 2023
Anzeige

Más contenido relacionado

Anzeige

Actividad 14. Diseño de Algoritmos Paralelos - Jhoan De Los Santos (22-1005).pptx

  1. A C T I V I D A D 1 4 : D I S E Ñ O D E A L G O R I T M O S P A R A L E L O S P O R : J H O A N J . D E L O S S A N TO S P 2 2 - 1 0 0 5
  2. Diseño de algoritmos paralelos • Diseñar algoritmos paralelos no es tarea fácil y es un proceso altamente creativo. • Inicialmente se deben explorar los aspectos independientes de la máquina. • Los aspectos específicos a la máquina deben ser dejados para más tarde.
  3. Qué son Algoritmos Paralelos? • Es un Algoritmo que podría ser ejecutado por piezas en el mismo momento de tiempo por numerosas unidades de procesamiento, para al final juntar cada una de las piezas y obtener el resultado adecuado.
  4. Etapas Del Diseño de Algoritmos Paralelos El diseño • Particionamiento: Los datos que se desean operar se descomponen en tareas. • Comunicación: A través de estructuras y algoritmos de comunicación se determina de el tipo de comunicación requerida para coordinar tarea. • Agrupamiento: Se evalúa la eficiencia de los dos pasos anteriores y de ser necesario se agrupan algunas tareas pequeñas en tareas más grandes. • Asignación: Cada tarea es asignada a un procesador tratando de aprovechar los recursos y reducir el costo de la comunicación.
  5. Alto Rendimiento de los algoritmos Los Algoritmos paralelos son claves en la computación de alto rendimiento debido a que implica usar la potencia de cálculo para resolver problemas complejos en ciencia, ingeniería y gestión. William D. Gropp un profesor de ciencias de la computación en la universidad de Illinois en Urbana-Champaign aprovechó esto desarrollando y analizando algoritmos paralelos escalables clave para métodos de descomposición de dominios y refinamiento de mallas adaptativas, que ahora se utilizan ampliamente en
  6. Modelos de programación paralela Existen varios modelos de programación paralela que se utilizan para diseñar algoritmos paralelos y aprovechar los recursos de hardware disponibles. A continuación, se describen algunos de ellos junto con ejemplos: • Modelo de memoria compartida: En este modelo, los procesos pueden acceder a un espacio de memoria compartido. Ejemplos de este modelo son OpenMP y Pthreads. Por ejemplo, en OpenMP se pueden utilizar directivas de compilación para especificar secciones de código que deben ser ejecutadas en paralelo. • Modelo de paso de mensajes: En este modelo, los procesos se comunican entre sí mediante el intercambio de mensajes. Ejemplos de este modelo son MPI (Message Passing Interface) y UPC (Unified Parallel C). Por ejemplo, en MPI se puede utilizar la función MPI_Send para enviar mensajes de un proceso a otro.
  7. • Modelo de flujo de datos: En este modelo, los procesos se comunican mediante el intercambio de datos. Ejemplos de este modelo son Dataflow y Stream. Por ejemplo, en Dataflow se puede especificar un grafo de datos que define cómo los datos fluyen entre los procesos. • Modelo de procesamiento en lotes: En este modelo, los procesos se agrupan en lotes y se procesan en paralelo. Ejemplos de este modelo son MapReduce y Spark. Por ejemplo, en MapReduce se pueden procesar grandes conjuntos de datos distribuidos en clústeres de servidores.
  8. • Modelo de procesamiento de eventos: En este modelo, los procesos se ejecutan en respuesta a eventos, como entradas de usuario o interrupciones de hardware. Ejemplos de este modelo son ReactiveX y Node.js. Por ejemplo, en ReactiveX se pueden escribir programas reactivos que respondan a flujos de datos asincrónicos. • Modelo de programación de GPU: En este modelo, los procesos se ejecutan en unidades de procesamiento gráfico (GPU) en lugar de en la CPU. Ejemplos de este modelo son CUDA y OpenCL. Por ejemplo, en CUDA se pueden diseñar algoritmos que aprovechen las capacidades de procesamiento masivo de la GPU.
  9. Referencias • https://core.ac.uk/download/pdf/13319 155.pdf • http://dis.um.es/~domingo/apuntes/Alg ProPar/1819/analisis.pdf Diseño de Algoritmos para Plataformas Paralelas. • http://sedici.unlp.edu.ar/bitstream/han dle/10915/27273/Documento_complet o .pdf?sequence=1 Principios de diseño de algoritmos paralelos. https://gc.scalahed.com/rec ursos/files/r161r/w25474w/DisenoDeAl goritmosP aralelos.pdf
Anzeige