2. I N T R O D U C C I Ó N
Los algoritmos paralelos permiten la
ejecución simultánea de procesos,
optimizando el rendimiento y reduciendo
el tiempo de ejecución en comparación
con los algoritmos secuenciales.
Crucial en aplicaciones que requieren
gran capacidad de cálculo y rapidez,
como procesamiento de imágenes,
simulaciones físicas y cálculos
científicos.
3. D E S A F Í O S A C T U A L E S
E N C I E N C I A E
I N G E N I E R Í A
Los desafíos actuales en ciencia e
ingeniería están marcados por el
volumen masivo de datos
generados a través de diversas
fuentes. Este crecimiento
exponencial, conocido como Big
Data, presenta retos significativos
en términos de almacenamiento,
análisis y procesamiento eficiente
de datos. La capacidad para extraer
conocimiento útil de este mar de
datos es crucial, pero las
herramientas tradicionales de
análisis y los enfoques
computacionales secuenciales a
menudo se quedan cortos,
incapaces de manejar la escala y la
complejidad de los datos modernos.
4. B Ú S Q U E D A D E S O L U C I O N E S PA R A
E S T O S D E S A F Í O S
Esto impulsa la búsqueda
de nuevas soluciones,
como el desarrollo de
algoritmos paralelos,
que pueden aprovechar el
poder de las arquitecturas
de computación
modernas para procesar
datos de manera más
rápida y eficiente
5. V E N TA J A S D E L A
PA R A L E L I Z A C I Ó N
Reducción de Tiempos de Ejecución:
Distribuye tareas entre varios procesadores
para acelerar el procesamiento.
Eficiencia en el Manejo de Grandes
Volúmenes de Datos: Facilita el análisis de
conjuntos de datos extensos.
Mejora de la Escalabilidad: Permite a las
aplicaciones adaptarse al crecimiento de los
datos.
Optimización del Uso del Hardware:
Aprovecha las capacidades de los sistemas
multicore modernos.
Facilitación del Análisis Complejo: Hace
posible el procesamiento de información
detallada y compleja.
6. T E C N O L O G Í A S D E
P R O G R A M A C I Ó N PA R A L E L A
Las tecnologías de programación paralela, como
OpenMP y CUDA, son cruciales para la implementación
de algoritmos paralelos. OpenMP es un API que
soporta programación multiproceso de memoria
compartida, facilitando la paralelización de código en C,
C++ y Fortran en plataformas desde laptops hasta
supercomputadores. CUDA, por otro lado, es una
plataforma de computación paralela y modelo de
programación inventado por NVIDIA. Permite
incrementar el rendimiento computacional
aprovechando la potencia de las unidades de
procesamiento gráfico (GPU) para aplicaciones de
cálculo intensivo.
7. O P E N M P ( O P E N M U LT I -
P R O C E S S I N G )
Es una API que permite la programación paralela
en sistemas de memoria compartida. Ofrece
una manera simple y flexible de desarrollar
aplicaciones paralelas en C, C++ y Fortran,
utilizando directivas de compilador, rutinas de
biblioteca, y variables de entorno que influyen
en el comportamiento en tiempo de ejecución.
OpenMP es ampliamente utilizado para la
paralelización de código debido a su facilidad
de uso y capacidad para adaptarse a diferentes
plataformas, desde computadoras personales
hasta supercomputadores
8. C U D A ( C O M P U T E
U N I F I E D D E V I C E
A R C H I T E C T U R E )
CUDA (Compute Unified Device
Architecture) es una plataforma de
NVIDIA que permite el desarrollo
de aplicaciones paralelas
utilizando GPUs. Ofrece a los
programadores herramientas y
librerías para aprovechar las
capacidades de procesamiento
paralelo de las GPUs, destinadas
no solo a gráficos sino también a
cálculos de propósito general.
Permite un aumento significativo
en el rendimiento computacional al
delegar cálculos intensivos a la
GPU, lo que es especialmente útil
en campos como la simulación, el
análisis de datos y el aprendizaje
automático.
9. M U E S T R A S C O M P A R A T I V A S D E R E N D I M I E N T O
E N T R E L A S V E R S I O N E S S E C U E N C I A L Y
P A R A L E L A
En general, los resultados
experimentales de
algoritmos paralelos
muestran mejoras
significativas en los
tiempos de ejecución
comparados con sus
contrapartes secuenciales
10. M U E S T R A C O M P A R A T I V A S D E R E N D I M I E N T O
E N T R E L A S V E R S I O N E S S E C U E N C I A L Y
P A R A L E L A
Esta aceleración se debe al uso
simultáneo de múltiples
procesadores o núcleos para
realizar cálculos, lo que permite
manejar grandes volúmenes de
datos de manera más eficiente. La
mejora específica en el rendimiento
puede variar según el problema, la
implementación del algoritmo y la
arquitectura del sistema, pero es
común observar reducciones en el
tiempo de procesamiento de varias
veces sobre la versión original
secuencial.
11. C O N C L U S I Ó N
Los algoritmos paralelos
ofrecen soluciones eficientes
para problemas complejos
desde la optimización
estructural hasta el
aprendizaje colaborativo, los
algoritmos paralelos tienen
aplicaciones diversas.
La investigación continua es
vital para desarrollar
algoritmos más rápidos y
eficientes.
12. R E F E R E N C I A S
• HOEGER, H. Introducción a la Computación Paralela. Centro Nacional de Cálculo Científico Universidad de Los Andes,
Mérida (Venezuela)–Ce-CalCULA, 2011.
• KAMINSKY, A. Parallel Java: A unified API for Shared Memory and cluster Parallel Programming in 100% Java. IEEE
International Parallel and Distributed Processing Symposium, Rochester Institute of Technology, Departament of Computer
Science, Rochester, New York, EUA. 2007.
• KAMINSKY, A. The Parallel Java 2 Library Parallel Programming in 100 % Java. Rochester Institute of Technology,
Departament of Computer Science, Rochester, New York, EUA. 2015.
• KANTARDZIC, M. Data Mining: concepts, models, methods and algorithms. John Wiley & Sons, ISBN 978-0-470-89045-5,
pp529, 2011.
• LAPEIRA, O. Rediseño de FuzzyPred 1.0. Tesis de Diploma CUJAE, La Habana, 2012.
• MOSTAFA, A.-E.-B. and H. EL-REWINI. Fundamentals of Computer Organization and Architecture. Inc. Hoboken, New
Jersey. ISBN 0-471- 46741-3. pp 290. 2005.
• PAS, R. An Overview of OpenMP 3.0. In., 2009.IWOMP. Tu Dresden (Alemania). Disponible en http://iwomp.zih.tu-
dresden.de/downloads/2.Overwiew_OpenMP.pdf
• REINDERS, J. Intel threading building blocks-outfitting C++ for multi-core processor parallelism. OReilly Media. ISBN 978-
1449390860, pp 336, 2007.