SlideShare una empresa de Scribd logo
1 de 21
Algoritmos
Paralelos
Grupo #2
Mario Almánzar 23-0221
Emil Moquete 22-0969
Manuel Bernabel 23-0285
Introducción
El dinámico ámbito del diseño de algoritmos paralelos ha tenido lugar un viaje transformador
en la última década, reconfigurando nuestra aproximación a los desafíos computacionales. En
esta presentación, buscamos explorar los conceptos de paralelismo, la necesidad de utilizar
algoritmos paralelos, los tipos de algoritmos paralelos, los modelos existentes, técnicas y
demás.
Mediante este medio, queremos proveer una visión actualizada sobre el tema de los algoritmos
paralelos, con el objetivo de comprender la importancia de los mismos y entender las
vertientes que puedan seguir en los años venideros.
¿Qué es el paralelismo?
El paralelismo en algoritmos paralelos se refiere a la capacidad de
realizar múltiples tareas o procesos simultáneamente en un sistema
computacional. En lugar de ejecutar una tarea tras otra en secuencia,
como en un algoritmo convencional, los algoritmos paralelos dividen
la tarea en partes más pequeñas que pueden ser ejecutadas al mismo
tiempo en diferentes procesadores o núcleos de procesamiento.
Esto permite un aumento en el rendimiento y la velocidad de
procesamiento, ya que se pueden realizar más operaciones
simultáneamente. El paralelismo es especialmente útil en
aplicaciones que requieren un alto grado de procesamiento, como la
simulación, el procesamiento de imágenes, el análisis de datos
masivos y la inteligencia artificial.
¿Qué es el paralelismo?
Los algoritmos en paralelo surgieron como respuesta a la necesidad de
procesar grandes volúmenes de datos y realizar tareas complejas de manera
más eficiente. A medida que la tecnología avanzaba, se volvía cada vez más
difícil mejorar el rendimiento de los procesadores individuales debido a
limitaciones físicas y de diseño.
Los algoritmos en paralelo aprovechan el poder de múltiples procesadores o
núcleos de procesamiento trabajando simultáneamente para dividir las tareas
en partes más pequeñas y ejecutarlas de manera concurrente. Esto permite un
mayor rendimiento y una reducción en el tiempo de procesamiento, lo que
resulta especialmente beneficioso para aplicaciones que requieren un alto
grado de computación, como el procesamiento de imágenes, la simulación
científica, el análisis de datos masivos y la inteligencia artificial.
¿Por qué surgieron los
algoritmos en paralelo?
Tipos de Algoritmos en Paralelo
Algoritmos de descomposición de datos: Dividen el conjunto de datos en partes más pequeñas que pueden
ser procesadas de manera independiente en paralelo. Ejemplos incluyen la división de matriz para
operaciones matriciales y la partición de datos en algoritmos de búsqueda y ordenación.
Algoritmos de descomposición de tareas: Dividen una tarea en sub-tareas que pueden ser ejecutadas en
paralelo. Esto se utiliza en algoritmos como la división y conquista, donde se dividen problemas complejos
en subproblemas más simples que se resuelven por separado antes de combinar los resultados.
Algoritmos de flujo de datos: Modelan problemas como flujos de datos y operan sobre ellos de manera
concurrente. Este enfoque es común en aplicaciones de procesamiento de señales, procesamiento de
imágenes y análisis de datos en tiempo real.
Algoritmos de malla: Utilizan una estructura de malla o red para dividir el problema en partes que pueden
ser resueltas de manera independiente. Estos algoritmos son comunes en aplicaciones de simulación
numérica y modelado de sistemas físicos.
Tipos de Algoritmos en Paralelo
Modelos Paralelos de Computación
Modelos Paralelos de Computación
La búsqueda de un modelo paralelo estandarizado de computación ha sido un desafío
formidable, marcado por las diversas arquitecturas y funcionalidades de los sistemas de
computación paralela.
Principios Clave Explorados:
- Eficiencia en el Trabajo: Enfatizando la importancia de la eficiencia sobre la
velocidad bruta, donde el número total de operaciones o trabajo ejecutado por un
algoritmo sirve como una métrica fundamental.
- Emulación: Destacando el concepto de que los modelos no necesitan replicar
máquinas reales con precisión; el enfoque radica en la traducción fluida de
algoritmos eficientes a eficiencia computacional en el mundo real.
- Modelado de la Comunicación: Adentrándose en la consideración explícita de
aspectos de comunicación como latencia, ancho de banda y topología de red para
optimizar el rendimiento y la escalabilidad en entornos de computación paralela.
Técnicas Algorítmicas
● Las técnicas algorítmicas fundamentales desempeñan un
papel crucial en el diseño y optimización de algoritmos
paralelos, con algunas técnicas diseñadas específicamente
para explotar el paralelismo.
● Paradigma de Divide y Vencerás: Revelando el enfoque natural
de descomponer problemas complejos en subproblemas
manejables para su resolución concurrente, fomentando la
ejecución paralela y una eficiencia computacional mejorada.
● Exploración de Otras Técnicas: Revelando la importancia de
los separadores de grafos para la partición de datos,
estrategias de equilibrio de carga a través de hashing y
métodos iterativos como alternativas a los solucionadores
directos de sistemas lineales, culminando en el desarrollo de
algoritmos paralelos eficientes en diversos dominios de
problemas.
Teoría de la Complejidad Paralela
● Estableciendo paralelismos con la NP-completitud,
la evolución de una sólida teoría de complejidad
paralela ha sido fundamental para comprender las
complejidades computacionales de los algoritmos
paralelos.
● Clase NC y P-Completitud: Revelando la
clasificación de problemas resolubles en tiempo
polilogarítmico con un número polinómico de
procesadores (Clase NC) y problemas resolubles en
tiempo polinómico (P-Completitud), con
implicaciones para la tratabilidad de problemas en
computación paralela.
● Ejemplificación a través de Problemas: Ilustrando
los conceptos a través de ejemplos como el flujo
máximo y las envolventes convexas, mostrando la
profundidad y amplitud de la teoría de complejidad
paralela en el análisis de desafíos computacionales.
Tendencias Futuras e Implicaciones
● Anticipando un cambio de paradigma en la
utilización de algoritmos paralelos con la
proliferación de computadoras personales multi-
procesador y el advenimiento de tecnologías de
computación paralela.
● Visualizando avances continuos en el diseño y
comprensión de algoritmos paralelos, allanando el
camino para soluciones innovadoras a problemas
computacionales complejos en diversos dominios y
aplicaciones.
Tendencias Futuras e Implicaciones
A medida que navegamos por el intrincado
panorama del diseño de algoritmos paralelos,
caracterizado por una búsqueda incansable de
eficiencia, técnicas algorítmicas innovadoras y una
profunda comprensión de la teoría de la
complejidad, el futuro promete un inmenso
potencial para nuevos avances en computación
paralela. El impacto transformador de los
algoritmos paralelos en los paradigmas de
computación modernos subraya el papel crítico que
desempeñan en la configuración del futuro de la
ciencia y tecnología computacional.
Rasterización de Polígonos
● La rasterización de polígonos es un proceso en los
gráficos por computadora que implica convertir
descripciones de formas geométricas definidas de
manera abstracta en una representación discreta
apropiada para su visualización. En términos de
gráficos por computadora, un polígono es una figura
geométrica plana definida por una secuencia de
vértices ordenada conectada por segmentos de línea
recta.
● Este proceso se encarga de determinar que píxeles
están contenidos dentro del polígono, para
asignarles una propiedad o color, dependiendo de la
apariencia del polígono. Este proceso, claramente,
varía de polígono en polígono, por lo que puede
tener una complejidad considerable.
Algoritmos Paralelos para la
Rasterización de Polígonos
● Debido a lo mencionado anteriormente, se ha discutido un
algoritmo paralelo que busca rasterizar polígonos en
implementaciones gráficas 3D. El mismo, utiliza funciones de borde
lineales para la computación eficiente de funciones de borde para
píxeles adyacentes. Este algoritmo está limitado por el ancho de
banda de memoria, siendo adecuado para buffers de imagen que
utilizan DRAM y VRAM convencional.
Este algoritmo trata 4 puntos fundamentales:
● -Diseño de un Motor de Gráficos Raster
● -Imágenes “Jag-Free” en Pantallas Raster
● -Recorte/Clipping
● -Diseño de Memoria para Pantallas de Gráficos Raster
Diseño de un Motor de Gráficos
Raster
● Es fundamental el diseño de un motor de gráficos
ráster para la presentación eficiente de polígonos
en entornos 3D. La renderización rápida de
polígonos 3D interpolados linealmente con Z-buffer
es esencial para las estaciones de trabajo. La
computación precisa de los límites de los polígonos
es esencial para la rasterización de un frame buffer,
garantizando una representación visual adecuada y
detallada de los objetos 3D en la pantalla. Todo
esto sin mencionar que la optimización de los
algoritmos de rasterización es vital para un
rendimiento óptimo en la visualización en tiempo
real de los gráficos.
Imágenes “Jag-Free” en Pantallas
Raster
● La técnica tradicional para evitar el
efecto de “Jag” implica uso de
algoritmos de interpolación de
líneas para los bordes de los
polígonos. Pero, el sistema “Pixel-
Planes” busca innovar y utilizar un
árbol de multiplicadores paralelo
para calcular funciones lineales para
todos los píxeles en el frame buffer,
permitiendo una representación más
suave y realista de los objetos.
Recorte/Clipping
● Este puede ser comprendido como bordes
adicionales de un polígono que forman parte del
valor del píxel. Al considerar esto, un algoritmo de
recorrido inteligente evitará renderizar áreas
recortadas de un polígono, optimizando la
renderización, mejorando la eficiencia en la
representación, lo cual mejora significativamente la
calidad final.
Diseño de Memoria para Pantallas de
Gráficos Raster
● La organización de los buffers de imagen en marcos
gráficos permite acceso simultáneo a bloques de
píxeles adyacentes, facilitando el cálculo paralelo
de funciones de borde para varios píxeles dentro de
un bloque. Esta capacidad en paralelo mejora la
eficiencia en la renderización de polígonos y la
determinación de si un píxel debe ser dibujado en
un ciclo único. La combinación de diseño y
algoritmos optimizados facilita una renderización
eficiente y de alta calidad en entornos gráficos,
mejorando la experiencia visual del usuario.
Conclusión
Los algoritmos paralelos son una gran herramienta dentro de la computación moderna, que abre
una serie de posibilidades explorables nuevas en la resolución eficiente de problemas
complejos. Luego de explorar la temática del paralelismo, hemos observado su importancia
creciente en un entorno tecnológico cada vez más demandante. Desde su utilización en la
renderización de gráficos tridimensionales hasta sus intervenciones en el procesamiento de
grandes volúmenes de datos, los algoritmos paralelos están redefiniendo los límites de la
computación y desafiando el status quo. Orientado en la optimización del rendimiento y la
utilización eficiente de recursos, estos algoritmos proveen la capacidad de enfrentar desafíos
computacionales con mayor agilidad y precisión. Los algoritmos paralelos seguirán siendo un
área de investigación vital y providenciales para la innovación en la era digital.
Lista de referencias
Blelloch, G. E., & Maggs, B. M. (1996). Parallel algorithms. ACM Computing Surveys, 28(1), 51-54.
https://doi.org/10.1145/234313.234339 Microsoft. (2023, 16 junio). Algoritmos paralelos.
Microsoft Learn. Recuperado 24 de marzo de 2024, de https://learn.microsoft.com/es-es/cpp/parallel/concrt/parallel-
algorithms?view=msvc-170
Orenia, L. M., Taymi, C. C., Alejandro, R. S., & Humberto, D. P. (2017, 6 febrero). Algoritmo paralelo para la obtención
de predicados difusos: Parallel Algorithm to obtain fuzzy predicates. Recuperado 24 de marzo de 2024, de
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992017000200009
Pineda, J. A. (1988). A parallel algorithm for polygon rasterization. ACM Computing Surveys, 22(2).
https://doi.org/10.1145/54852.378457

Más contenido relacionado

Similar a Grupo #2 - Asignación sobre Algoritmos Paralelos

Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxSebastianPea63
 
Actividad 14 Diseño de Algoritmos Paralelos.pptx
Actividad 14 Diseño de Algoritmos Paralelos.pptxActividad 14 Diseño de Algoritmos Paralelos.pptx
Actividad 14 Diseño de Algoritmos Paralelos.pptxDanielCespedes25
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosCarlosHung9
 
Diseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaDiseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaLuisAlfredoPascualPo
 
Actividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptxActividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptxIsaaK10
 
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓNLA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓNJorge Iván Alba Hernández
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 
Mecatrónica clase01.pdf
Mecatrónica clase01.pdfMecatrónica clase01.pdf
Mecatrónica clase01.pdfRocioScherpa
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfMarti44678
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxEilynPrez
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxEilynPrez
 
Trabajo de clasificacion de las computadoras
Trabajo de clasificacion de las computadorasTrabajo de clasificacion de las computadoras
Trabajo de clasificacion de las computadorasesteban012011
 
Asignacion computacion aplicada
Asignacion computacion aplicadaAsignacion computacion aplicada
Asignacion computacion aplicadalorenza20
 
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.LaurialicValerio
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorSotero Ordones
 
Trabajo de clasificacion de las computadoras 2
Trabajo de clasificacion de las computadoras 2Trabajo de clasificacion de las computadoras 2
Trabajo de clasificacion de las computadoras 2esteban012011
 

Similar a Grupo #2 - Asignación sobre Algoritmos Paralelos (20)

Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Actividad 14 Diseño de Algoritmos Paralelos.pptx
Actividad 14 Diseño de Algoritmos Paralelos.pptxActividad 14 Diseño de Algoritmos Paralelos.pptx
Actividad 14 Diseño de Algoritmos Paralelos.pptx
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos Paralelos
 
Diseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaDiseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra Rina
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Actividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptxActividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptx
 
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓNLA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
LA IMPORTANCIA DEL CÁLCULO INTEGRAL EN LA CARRERA DE INGENIERÍA EN COMPUTACIÓN
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 
Mecatrónica clase01.pdf
Mecatrónica clase01.pdfMecatrónica clase01.pdf
Mecatrónica clase01.pdf
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdf
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
Trabajo de clasificacion de las computadoras
Trabajo de clasificacion de las computadorasTrabajo de clasificacion de las computadoras
Trabajo de clasificacion de las computadoras
 
Algoritmos paralelos
 Algoritmos paralelos Algoritmos paralelos
Algoritmos paralelos
 
Asignacion computacion aplicada
Asignacion computacion aplicadaAsignacion computacion aplicada
Asignacion computacion aplicada
 
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-Vector
 
Trabajo de clasificacion de las computadoras 2
Trabajo de clasificacion de las computadoras 2Trabajo de clasificacion de las computadoras 2
Trabajo de clasificacion de las computadoras 2
 

Grupo #2 - Asignación sobre Algoritmos Paralelos

  • 1. Algoritmos Paralelos Grupo #2 Mario Almánzar 23-0221 Emil Moquete 22-0969 Manuel Bernabel 23-0285
  • 2. Introducción El dinámico ámbito del diseño de algoritmos paralelos ha tenido lugar un viaje transformador en la última década, reconfigurando nuestra aproximación a los desafíos computacionales. En esta presentación, buscamos explorar los conceptos de paralelismo, la necesidad de utilizar algoritmos paralelos, los tipos de algoritmos paralelos, los modelos existentes, técnicas y demás. Mediante este medio, queremos proveer una visión actualizada sobre el tema de los algoritmos paralelos, con el objetivo de comprender la importancia de los mismos y entender las vertientes que puedan seguir en los años venideros.
  • 3. ¿Qué es el paralelismo?
  • 4. El paralelismo en algoritmos paralelos se refiere a la capacidad de realizar múltiples tareas o procesos simultáneamente en un sistema computacional. En lugar de ejecutar una tarea tras otra en secuencia, como en un algoritmo convencional, los algoritmos paralelos dividen la tarea en partes más pequeñas que pueden ser ejecutadas al mismo tiempo en diferentes procesadores o núcleos de procesamiento. Esto permite un aumento en el rendimiento y la velocidad de procesamiento, ya que se pueden realizar más operaciones simultáneamente. El paralelismo es especialmente útil en aplicaciones que requieren un alto grado de procesamiento, como la simulación, el procesamiento de imágenes, el análisis de datos masivos y la inteligencia artificial. ¿Qué es el paralelismo?
  • 5. Los algoritmos en paralelo surgieron como respuesta a la necesidad de procesar grandes volúmenes de datos y realizar tareas complejas de manera más eficiente. A medida que la tecnología avanzaba, se volvía cada vez más difícil mejorar el rendimiento de los procesadores individuales debido a limitaciones físicas y de diseño. Los algoritmos en paralelo aprovechan el poder de múltiples procesadores o núcleos de procesamiento trabajando simultáneamente para dividir las tareas en partes más pequeñas y ejecutarlas de manera concurrente. Esto permite un mayor rendimiento y una reducción en el tiempo de procesamiento, lo que resulta especialmente beneficioso para aplicaciones que requieren un alto grado de computación, como el procesamiento de imágenes, la simulación científica, el análisis de datos masivos y la inteligencia artificial. ¿Por qué surgieron los algoritmos en paralelo?
  • 6. Tipos de Algoritmos en Paralelo
  • 7. Algoritmos de descomposición de datos: Dividen el conjunto de datos en partes más pequeñas que pueden ser procesadas de manera independiente en paralelo. Ejemplos incluyen la división de matriz para operaciones matriciales y la partición de datos en algoritmos de búsqueda y ordenación. Algoritmos de descomposición de tareas: Dividen una tarea en sub-tareas que pueden ser ejecutadas en paralelo. Esto se utiliza en algoritmos como la división y conquista, donde se dividen problemas complejos en subproblemas más simples que se resuelven por separado antes de combinar los resultados. Algoritmos de flujo de datos: Modelan problemas como flujos de datos y operan sobre ellos de manera concurrente. Este enfoque es común en aplicaciones de procesamiento de señales, procesamiento de imágenes y análisis de datos en tiempo real. Algoritmos de malla: Utilizan una estructura de malla o red para dividir el problema en partes que pueden ser resueltas de manera independiente. Estos algoritmos son comunes en aplicaciones de simulación numérica y modelado de sistemas físicos. Tipos de Algoritmos en Paralelo
  • 8. Modelos Paralelos de Computación
  • 9. Modelos Paralelos de Computación La búsqueda de un modelo paralelo estandarizado de computación ha sido un desafío formidable, marcado por las diversas arquitecturas y funcionalidades de los sistemas de computación paralela. Principios Clave Explorados: - Eficiencia en el Trabajo: Enfatizando la importancia de la eficiencia sobre la velocidad bruta, donde el número total de operaciones o trabajo ejecutado por un algoritmo sirve como una métrica fundamental. - Emulación: Destacando el concepto de que los modelos no necesitan replicar máquinas reales con precisión; el enfoque radica en la traducción fluida de algoritmos eficientes a eficiencia computacional en el mundo real. - Modelado de la Comunicación: Adentrándose en la consideración explícita de aspectos de comunicación como latencia, ancho de banda y topología de red para optimizar el rendimiento y la escalabilidad en entornos de computación paralela.
  • 10. Técnicas Algorítmicas ● Las técnicas algorítmicas fundamentales desempeñan un papel crucial en el diseño y optimización de algoritmos paralelos, con algunas técnicas diseñadas específicamente para explotar el paralelismo. ● Paradigma de Divide y Vencerás: Revelando el enfoque natural de descomponer problemas complejos en subproblemas manejables para su resolución concurrente, fomentando la ejecución paralela y una eficiencia computacional mejorada. ● Exploración de Otras Técnicas: Revelando la importancia de los separadores de grafos para la partición de datos, estrategias de equilibrio de carga a través de hashing y métodos iterativos como alternativas a los solucionadores directos de sistemas lineales, culminando en el desarrollo de algoritmos paralelos eficientes en diversos dominios de problemas.
  • 11. Teoría de la Complejidad Paralela ● Estableciendo paralelismos con la NP-completitud, la evolución de una sólida teoría de complejidad paralela ha sido fundamental para comprender las complejidades computacionales de los algoritmos paralelos. ● Clase NC y P-Completitud: Revelando la clasificación de problemas resolubles en tiempo polilogarítmico con un número polinómico de procesadores (Clase NC) y problemas resolubles en tiempo polinómico (P-Completitud), con implicaciones para la tratabilidad de problemas en computación paralela. ● Ejemplificación a través de Problemas: Ilustrando los conceptos a través de ejemplos como el flujo máximo y las envolventes convexas, mostrando la profundidad y amplitud de la teoría de complejidad paralela en el análisis de desafíos computacionales.
  • 12. Tendencias Futuras e Implicaciones ● Anticipando un cambio de paradigma en la utilización de algoritmos paralelos con la proliferación de computadoras personales multi- procesador y el advenimiento de tecnologías de computación paralela. ● Visualizando avances continuos en el diseño y comprensión de algoritmos paralelos, allanando el camino para soluciones innovadoras a problemas computacionales complejos en diversos dominios y aplicaciones.
  • 13. Tendencias Futuras e Implicaciones A medida que navegamos por el intrincado panorama del diseño de algoritmos paralelos, caracterizado por una búsqueda incansable de eficiencia, técnicas algorítmicas innovadoras y una profunda comprensión de la teoría de la complejidad, el futuro promete un inmenso potencial para nuevos avances en computación paralela. El impacto transformador de los algoritmos paralelos en los paradigmas de computación modernos subraya el papel crítico que desempeñan en la configuración del futuro de la ciencia y tecnología computacional.
  • 14. Rasterización de Polígonos ● La rasterización de polígonos es un proceso en los gráficos por computadora que implica convertir descripciones de formas geométricas definidas de manera abstracta en una representación discreta apropiada para su visualización. En términos de gráficos por computadora, un polígono es una figura geométrica plana definida por una secuencia de vértices ordenada conectada por segmentos de línea recta. ● Este proceso se encarga de determinar que píxeles están contenidos dentro del polígono, para asignarles una propiedad o color, dependiendo de la apariencia del polígono. Este proceso, claramente, varía de polígono en polígono, por lo que puede tener una complejidad considerable.
  • 15. Algoritmos Paralelos para la Rasterización de Polígonos ● Debido a lo mencionado anteriormente, se ha discutido un algoritmo paralelo que busca rasterizar polígonos en implementaciones gráficas 3D. El mismo, utiliza funciones de borde lineales para la computación eficiente de funciones de borde para píxeles adyacentes. Este algoritmo está limitado por el ancho de banda de memoria, siendo adecuado para buffers de imagen que utilizan DRAM y VRAM convencional. Este algoritmo trata 4 puntos fundamentales: ● -Diseño de un Motor de Gráficos Raster ● -Imágenes “Jag-Free” en Pantallas Raster ● -Recorte/Clipping ● -Diseño de Memoria para Pantallas de Gráficos Raster
  • 16. Diseño de un Motor de Gráficos Raster ● Es fundamental el diseño de un motor de gráficos ráster para la presentación eficiente de polígonos en entornos 3D. La renderización rápida de polígonos 3D interpolados linealmente con Z-buffer es esencial para las estaciones de trabajo. La computación precisa de los límites de los polígonos es esencial para la rasterización de un frame buffer, garantizando una representación visual adecuada y detallada de los objetos 3D en la pantalla. Todo esto sin mencionar que la optimización de los algoritmos de rasterización es vital para un rendimiento óptimo en la visualización en tiempo real de los gráficos.
  • 17. Imágenes “Jag-Free” en Pantallas Raster ● La técnica tradicional para evitar el efecto de “Jag” implica uso de algoritmos de interpolación de líneas para los bordes de los polígonos. Pero, el sistema “Pixel- Planes” busca innovar y utilizar un árbol de multiplicadores paralelo para calcular funciones lineales para todos los píxeles en el frame buffer, permitiendo una representación más suave y realista de los objetos.
  • 18. Recorte/Clipping ● Este puede ser comprendido como bordes adicionales de un polígono que forman parte del valor del píxel. Al considerar esto, un algoritmo de recorrido inteligente evitará renderizar áreas recortadas de un polígono, optimizando la renderización, mejorando la eficiencia en la representación, lo cual mejora significativamente la calidad final.
  • 19. Diseño de Memoria para Pantallas de Gráficos Raster ● La organización de los buffers de imagen en marcos gráficos permite acceso simultáneo a bloques de píxeles adyacentes, facilitando el cálculo paralelo de funciones de borde para varios píxeles dentro de un bloque. Esta capacidad en paralelo mejora la eficiencia en la renderización de polígonos y la determinación de si un píxel debe ser dibujado en un ciclo único. La combinación de diseño y algoritmos optimizados facilita una renderización eficiente y de alta calidad en entornos gráficos, mejorando la experiencia visual del usuario.
  • 20. Conclusión Los algoritmos paralelos son una gran herramienta dentro de la computación moderna, que abre una serie de posibilidades explorables nuevas en la resolución eficiente de problemas complejos. Luego de explorar la temática del paralelismo, hemos observado su importancia creciente en un entorno tecnológico cada vez más demandante. Desde su utilización en la renderización de gráficos tridimensionales hasta sus intervenciones en el procesamiento de grandes volúmenes de datos, los algoritmos paralelos están redefiniendo los límites de la computación y desafiando el status quo. Orientado en la optimización del rendimiento y la utilización eficiente de recursos, estos algoritmos proveen la capacidad de enfrentar desafíos computacionales con mayor agilidad y precisión. Los algoritmos paralelos seguirán siendo un área de investigación vital y providenciales para la innovación en la era digital.
  • 21. Lista de referencias Blelloch, G. E., & Maggs, B. M. (1996). Parallel algorithms. ACM Computing Surveys, 28(1), 51-54. https://doi.org/10.1145/234313.234339 Microsoft. (2023, 16 junio). Algoritmos paralelos. Microsoft Learn. Recuperado 24 de marzo de 2024, de https://learn.microsoft.com/es-es/cpp/parallel/concrt/parallel- algorithms?view=msvc-170 Orenia, L. M., Taymi, C. C., Alejandro, R. S., & Humberto, D. P. (2017, 6 febrero). Algoritmo paralelo para la obtención de predicados difusos: Parallel Algorithm to obtain fuzzy predicates. Recuperado 24 de marzo de 2024, de http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992017000200009 Pineda, J. A. (1988). A parallel algorithm for polygon rasterization. ACM Computing Surveys, 22(2). https://doi.org/10.1145/54852.378457