Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CASTILLO GONZALO
FERNANDEZ MARCOS
F UE N T E S G E R B E R
Algoritmos de ordenamiento
Programación paralela
30 de noviembre de 2007
Resumen
En este artículo El presente trabajo explora y muestra tres algoritmos de ordenamiento
Quicksort paralelos y las caracateristicas particulares de cada uno de estos.
1 Introducción
Deacuerdo al balance del tamaño de las listas se generan por cada
2 Algoritmo Quicksort algoritmo se verá que el Algoritmo Quicksort es pobre, el algoritmo
Hiperquicksort es mejor y el algoritmo PSRS es excelente.
3 Algoritmo Quicksort paralelo
4 Algoritmo Hyperquicksort
5
Introducción
Algoritmo por muestreo (PSRS)
6 Conclusiones
7 Bibliografía
Dada una secuencia de números que deben ser ordenados. Esa secuencia
es ordenada en partes que son colecciones de datos llamados registros.
Con cada registro el valor con el que se ordena se llama llave, el resto del
registro contiene datos satélites. Dependiendo de estos datos satélites, si son
numerosos o no, el algoritmo se puede descomponer en muchos registros.
Este documento se centra solo en la ordenación de una secuencia de
números dejando de lado aspectos como la implementación, y problemas
asociados con los datos satelites.
Algoritmo Quicksort
Pasos:
Algoritmo Hyperquicksort
Este algoritmo fue desarrollado originalmente por hypercubes, pero puede
ser usado sobre todo por sistemas message-passing, la función quicksort
se llama dos veces porque el numero de “hojas” , llamada potencia de 2.
Por esta razón nosotros asumimos que el numero de procesos activos es
también potencia de 2.
Pasos:
Un procesador elige un pivote y lo envía por medio de broadcast
al resto.
Cada procesador divide la lista de elementos en dos sublista, una
contiene los valores menores o igual al pivote y la segunda lista
contiene los valores mayores al pivote.
Cada procesador divide así mismo en dos grupos y el algoritmo
recursivo.une lo que queda de su lista con la recibida.
Finalmente cada procesador se ordena en forma secuencial.
50, 12, 47, 72, 65, 54, 66, 22 P1 12, 22, 47, 50, 54, 65, 66, 72 P1
83, 66, 67, 0, 70, 98, 99, 82 P2 0, 66, 67, 70, 82, 83, 98, 99 P2
20, 40, 89, 47, 19, 61, 86, 85 P3 19, 20, 40, 47, 61, 85, 86, 89 P3
y EL proceso de fusión mantiene y recibe los y Procesos P0 y P2 informa el pivote por medio de
valores broadcast
12, 19, 20, 22, 40, 47, 47, 50, 54 P1 12, 19, 20, 22, 40, 47, 47, 50, 54 P1
64, 66, 67, 70, 75, 82, 83, 88, 91, 98, 99 P2 64, 66, 67, 70, 75, 82, 83, 88, 91, 98, 99 P2
61, 65, 66, 72, 85, 86, 89 P3 61, 65, 66, 72, 85, 86, 89 P3
Fase 4. En esta última fase se ordena cada sublista y se forma una sola lista
haciendo un broadcast al proceso principal.
Conclusiones
El proceso en paralelo puede mejorar en algunos casos el tiempo de
proceso, este es un ejemplo claro que los algoritmos de ordenamiento en
paralelo pueden ser mucho más eficientes que los algoritmos de
ordenamiento secuenciales.
Bibliografía
Oxford University Press – Introduction to parallel computing. Edición 2004
Wiley - Tools and Environments for Parallel and Distributed Computing
Quinn – Parallel programming in C with MPI and OpenMP.