1. diseño de Algoritmos
Paralelos
Nombre: Isaac Bonilla, 19-0754
Materia: Análisis y Diseño de Algoritmo
Maestr@: PhD. Rina Maria Familia
Institución: Universidad Iberoamericana (UNIBE)
2. Algoritmos paralelos
En informática , un algoritmo paralelo , a
diferencia de un algoritmo en serie tradicional
, es un algoritmo que puede realizar múltiples
operaciones en un tiempo determinado.
Ha sido una tradición de las ciencias de la
computación describir algoritmos seriales en
modelos de máquina abstractos, a menudo el
conocido como máquina de acceso aleatorio . De
manera similar, muchos investigadores en
ciencias de la computación han utilizado la
llamada máquina paralela de acceso aleatorio
(PRAM) como una máquina abstracta paralela
(memoria compartida).
3. Características
Al este algoritmo tener la
peculiaridad de poder hacer
varias tareas o procesos al
mismo tiempo, necesita optimizar
la comunicación entre las
unidades de procesamiento. Para
hacer esto posible utilizar dos
paradigmas de programación y
diseño de procesadores, que son:
memoria compartida o paso de
mensaje.
4. Memoria compartida: es un tipo de memoria
que puede ser accedida por múltiples
programas, ya sea para comunicarse entre
ellos o para evitar copias redundantes.
dependiendo el contexto, los programas
pueden ejecutarse en un mismo procesador o
en procesadores separados.
Paso de mensaje: es un técnica empleada en
programación concurrente para aportar
sincronización entre procesos y permitir la
exclusión mutua, de manera similar a como se
hace con los semáforos. Su característica
principal es que no precisa de memoria
compartida.
5. Comparación
Muchos algoritmos paralelos se ejecutan
simultáneamente , aunque en general los algoritmos
concurrentes son un concepto distinto, y por lo
tanto, estos conceptos a menudo se combinan, y no se
distingue claramente qué aspecto de un algoritmo es
paralelo y cuál es concurrente. Además, los
algoritmos no paralelos y no concurrentes a menudo se
denominan " algoritmos secuenciales ", en contraste
con los algoritmos concurrentes.
Los Algoritmos paralelos en comparación con 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.
6. Diseño de Algoritmos Paralelos
El diseño involucra cuatro
etapas las cuales se presentan
como secuenciales pero que en
la práctica no lo son:
● Particionamiento
● Comunicación
● Agrupamiento
● Asignación
7. Particionamiento: El cómputo y los datos
sobre los cuales se opera se descomponen
en tareas. Se ignoran aspectos como el
número de procesadores de la máquina a
usar y se concentra la atención en
explotar oportunidades de paralelismo.
Comunicación: Se determina la
comunicación requerida para coordinar
las tareas. Se definen estructuras y
algoritmos de comunicación.
8. Agrupamiento: El resultado de las dos etapas
anteriores es evaluado en términos de eficiencia
y costos de implementación. De ser necesario, se
agrupan tareas pequeñas en tareas más grandes.
Asignación: Cada tarea es asignada a un
procesador tratando de maximizar la utilización
de los procesadores y de reducir el costo de
comunicación. La asignación puede ser estática
(se establece antes de la ejecución del programa)
o en tiempo de ejecución mediante algoritmos de
balanceo de carga.
10. Referencias
tok.wiki. (2015b). Algoritmo paralelo
ParalelizabilidadyMotivación. Hmang.
https://hmong.es/wiki/Parallel_algorithm
López, E. B. (2014, 22 mayo). ALGORITMOS PARALELOS.
Prezi.Com. https://prezi.com/i-68c3jyuno7/algoritmos-
paralelos/
Universidad de Los Andes, & Díaz, P. G. (2010). Diseño
de Algoritmos Paralelos (N.o 1). Webdelprofesor.ula.ve.
http://webdelprofesor.ula.ve/ingenieria/gilberto/paral
ela/08_DisenoDeAlgoritmosParalelos.pdf